2016-08-09 15 views
1

私はASP.NET Coreアプリケーションを構築しており、このアプリケーションをWin2008サーバーに展開したいと考えています。 kestrelで直接アプリケーションを起動すると(メインを含むexeをダブルクリックしてください)、すべて正常に動作します。私はIISを介してアプリケーションを起動した場合しかし、私は次の例外を取得:ASP.NETコアでIISに統合されたビューが見つかりません

は失敗:Microsoft.AspNetCore.Server.Kestrel [13] 接続ID「0HKU0DCR0LPSS」:未処理の例外は、アプリケーションによってスローされました。 System.InvalidOperationException:ビュー 'ログイン' が見つかりませんでした。次の場所を検索した: /Views/Account/Login.cshtml /Views/Shared/Login.cshtmlを Microsoft.AspNetCore.Mvc.ViewEngines.ViewEngineResult.EnsureSuccessful(IEnumerable`1 originalLocations)で Microsoft.AspNetCore.Mvcで.ViewResult.d__26.MoveNext()

この例外は、このquestionで既に説明しました。しかし私は提案された解決策と私のファイルを比較し、まだエラーを取得します。

また、私はIISを経由してアプリを起動した場合、もともと次のapplication.exeに置かれた設定ファイルがwwwrootフォルダ内に移動する必要があることに気づきました。ここで

はwwwrootフォルダ内に座っている私のweb.configファイルの内容です:

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <system.webServer> 
    <handlers> 
     <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" /> 
    </handlers> 
    <aspNetCore processPath="..\ERMSClient.exe" arguments="" stdoutLogEnabled="true" stdoutLogFile="..\logs\stdout" /> 
    </system.webServer> 
</configuration> 

そして、これは私が私が持っていることを言及する必要が加え

{ 
    "dependencies": { 
    "Microsoft.AspNetCore.Mvc": "1.0.0", 
    "Microsoft.AspNetCore.Server.Kestrel": "1.0.0", 
    "Microsoft.AspNetCore.StaticFiles": "1.0.0", 
    "Microsoft.AspNetCore.Mvc.TagHelpers": "1.0.0", 
    "Microsoft.EntityFrameworkCore": "1.0.0", 
    "Microsoft.EntityFrameworkCore.SqlServer": "1.0.0", 
    "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final", 
    "Microsoft.AspNetCore.Identity.EntityFrameworkCore": "1.0.0", 
    "Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore": "1.0.0", 
    "Microsoft.AspNet.IISPlatformHandler": "1.0.0-rc1-final", 
    "Microsoft.AspNetCore.Server.WebListener": "0.1.0", 
    "Microsoft.AspNetCore.Http": "1.0.0", 
    "Microsoft.AspNetCore.Authorization": "1.0.0", 
    "Microsoft.AspNetCore.Authentication.Cookies": "1.0.0", 
    "Microsoft.AspNetCore.Mvc.Core": "1.0.0", 
    "Microsoft.AspNetCore.Mvc.ApiExplorer": "1.0.0", 
    "Microsoft.AspNetCore.Mvc.Abstractions": "1.0.0", 
    "Microsoft.AspNetCore.Session": "1.0.0", 
    "Microsoft.AspNetCore.Diagnostics": "1.0.0", 
    "Microsoft.AspNetCore.Razor.Tools": { 
     "version": "1.0.0-preview2-final", 
     "type": "build" 
    }, 
    "Newtonsoft.Json": "9.0.1", 
    "Microsoft.Extensions.Configuration.FileProviderExtensions": "1.0.0-rc1-final", 
    "Microsoft.Extensions.Configuration.Json": "1.0.0", 
    "System.Web.Helpers.dll": "1.0.0", 
    "AutoMapper": "5.0.2", 
    "Microsoft.VisualStudio.Web.CodeGenerators.Mvc": "1.0.0-preview2-final", 
    "Microsoft.Extensions.Configuration": "1.0.0", 
    "Microsoft.Extensions.Configuration.UserSecrets": "1.0.0", 
    "Microsoft.Extensions.Logging": "1.0.0", 
    "Microsoft.Extensions.Logging.Console": "1.0.0", 
    "Microsoft.Extensions.Logging.Debug": "1.0.0", 
    "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0" 
    }, 
    "tools": { 
    "Microsoft.AspNetCore.Razor.Tools": "1.0.0-preview2-final", 
    "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final", 
    "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final" 
    }, 

    "frameworks": { 
    "net461": { 
     "dependencies": { 
     "d3Communicator": { 
      "target": "project" 
     } 
     } 
    } 
    }, 

    "buildOptions": { 
    "emitEntryPoint": true, 
    "preserveCompilationContext": true 
    }, 

    "publishOptions": { 
    "include": [ 
     "wwwroot", 
     "Views", 
     "appsettings.json", 
     "web.config" 
    ] 
    }, 
    "scripts": { 
    "prepublish": [ "npm install", "bower install" ], 
    "postpublish": "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" 
    } 
} 

私project.jsonですこのプロジェクトをASP.NET RC1からアップグレードしました。だから私はおそらくどこか古いエントリや何か他のものを持っています。

+0

Web.configがIISに配置された公開フォルダのスナップショットとどのように見えるかを共有できますか? –

+0

project.jsonを共有できますか? –

+0

間違ったプロジェクトテンプレートを使用しましたか?通常、project.jsonには、exeファイルがあるViewsフォルダをコピーし、展開/公開時に同じことをするエントリがあるはずです – Tseng

答えて

1

私の問題は非常に簡単な答えでした。どういうわけか、私は自分のIISサイトの物理パスをASP.NET Coreプロジェクトのwwwrootディレクトリに向けなければならないと考えました。これは正しくありません。物理パスは、wwwrootの上の完全な公開ディレクトリを指していなければなりません。

関連する問題