Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.NET 5(vNext)导致Azure上出现500-内部服务器错误_C#_Asp.net_Azure - Fatal编程技术网

C# ASP.NET 5(vNext)导致Azure上出现500-内部服务器错误

C# ASP.NET 5(vNext)导致Azure上出现500-内部服务器错误,c#,asp.net,azure,C#,Asp.net,Azure,我们正在与新的ASP.NET5(vNext)、EF7和AngularJS一起进行一个项目,并计划在Azure上部署WebApp 我在Azure上创建了一个新的Web应用程序,并通过Visual Studio 2015发布了我们的项目。 发布之后,当我尝试测试我们的应用程序时,我会得到一个500内部服务器错误 我已经在wwwroot中的web.config中设置了,但没有成功。 然后我通过FTP登录,“DetailedErrors”也不包含任何有用的信息 eventlog.xml包含以下异常: &

我们正在与新的ASP.NET5(vNext)、EF7和AngularJS一起进行一个项目,并计划在Azure上部署WebApp

我在Azure上创建了一个新的Web应用程序,并通过Visual Studio 2015发布了我们的项目。 发布之后,当我尝试测试我们的应用程序时,我会得到一个500内部服务器错误

我已经在
wwwroot
中的
web.config
中设置了
,但没有成功。 然后我通过FTP登录,“DetailedErrors”也不包含任何有用的信息

eventlog.xml包含以下异常:

<Events><Event><System><Provider Name="ASP.NET 4.0.30319.0"/>    <EventID>1309</EventID><Level>2</Level><Task>0</Task>    <Keywords>Keywords</Keywords><TimeCreated SystemTime="2015-07-28T10:54:43Z"/>    <EventRecordID>280293125</EventRecordID><Channel>Application</Channel>    <Computer>RD000D3A202052</Computer><Security/></System><EventData>    <Data>3005</Data><Data>An unhandled exception has occurred.</Data>    <Data>7/28/2015 10:54:43 AM</Data><Data>7/28/2015 10:54:43 AM</Data>    <Data>9df086471c304ebfa4ddddf9ca2a2b92</Data><Data>1</Data><Data>1</Data><Data>0</Data><Data>/LM/W3SVC/2082809257/ROOT-1-130825544829782705</Data><Data></Data><Data>/</Data><Data>D:\home\site\wwwroot\</Data><Data>RD000D3A202052</Data><Data></Data><Data>2108</Data><Data>w3wp.exe</Data><Data>IIS APPPOOL\appname</Data><Data>InvalidOperationException</Data><Data>Couldn't determine an appropriate version of runtime to run. See http://go.microsoft.com/fwlink/?LinkId=517742 for more information.
at AspNet.Loader.RuntimeLocator.LocateRuntime(MapPathHelper mapPathHelper, Boolean&amp; isCoreClr, String&amp; relativeAppBasePath)
at AspNet.Loader.Bootstrapper.LoadApplication(String appId, String appConfigPath, IProcessHostSupportFunctions supportFunctions, LoadApplicationData* pLoadAppData, Int32 loadAppDataSize)
at System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32 errorCode, IntPtr errorInfo)
at System.Runtime.InteropServices.Marshal.ThrowExceptionForHR(Int32 errorCode)
at System.Web.Hosting.ProcessHost.System.Web.Hosting.IProcessHostLite.ReportCustomLoaderError(String appId, Int32 hr, AppDomain newlyCreatedAppDomain)
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Web.Hosting.ApplicationManager.CreateAppDomainWithHostingEnvironment(String appId, IApplicationHost appHost, HostingEnvironmentParameters hostingParameters)   at System.Web.HttpRuntime.HostingInit(HostingEnvironmentFlags hostingFlags, PolicyLevel policyLevel, Exception appDomainCreationException)

如何获取有关错误的更多信息?

我可以重新创建您的问题。结果表明,发布向导默认选择的运行时与应用程序选定的DNX运行时不匹配。您可以通过进入发布设置并在下拉列表中选择正确的目标DNX版本来修复此问题。在您的例子中:beta4核心clr版本

在file>new project之后-my
project.json
看起来像:

"frameworks": {
    "dnx451": { },
    "dnxcore50": { }
},  
注意-它使用的是
core
-核心clr-而不是完整的clr。设置此应用程序的发布时-跳过此处的默认设置:

注意-默认情况下,它选择的是
dnx clr
,而不是
核心clr
。不过Beta5版本是正确的

发布导致内部服务器错误:

我在这里找到了错误描述:

注意:这需要安装新的Azure 2.7 SDK

这条消息的有趣部分是:

<Data>DirectoryNotFoundException</Data>
<Data>Unable to find the runtime directory 'D:\home\site\wwwroot\..\approot\runtimes\dnx-clr-win-x86.1.0.0-beta5-12103'. 
Possible causes:
1. The runtime was not packaged with the application.
2. The packaged runtime architecture is different from the application pool architecture. 
... </Data>
DirectoryNotFoundException
找不到运行时目录“D:\home\site\wwwroot\..\approot\runtimes\dnx-clr-win-x86.1.0.0-beta5-12103”。
可能的原因:
1.运行时未与应用程序打包。
2.打包的运行时体系结构不同于应用程序池体系结构。
... 
因此,我切换到了正确的目标DNX版本,它成功了:


注意-
coreclr
版本。

如果检查消息,您会看到IIS抱怨找不到正确的运行时版本(
无法确定要运行的运行时版本。
)。在第一行中,它提到了
ASP.NET 4.0.30319.0
。您在何处以及如何发布该项目?是否安装了正确的运行时版本?请尝试设置
config.IncludeErrorDetailPolicy=IncludeErrorDetailPolicy.Always
@PanagiotisKanavos如何在Azure WebApp上安装正确的运行时版本?(不是VM)@afsharm我应该在哪里设置它?@StefanSchmid:我把它放在我的
Startup.cs
中,像这样:
public void配置(IAppBuilder app){HttpConfiguration config=new HttpConfiguration();config.includeerrordailpolicy=includeerrordailpolicy.Always;}
<Data>DirectoryNotFoundException</Data>
<Data>Unable to find the runtime directory 'D:\home\site\wwwroot\..\approot\runtimes\dnx-clr-win-x86.1.0.0-beta5-12103'. 
Possible causes:
1. The runtime was not packaged with the application.
2. The packaged runtime architecture is different from the application pool architecture. 
... </Data>