azure - 不在托管服务或开发结构中运行(生产,而不是调试/本地)

标签 azure asp.net-mvc-4 dotnetopenauth

我刚刚开始使用 Windows Azure,并且已经使用 Azure 模拟器在本地运行了一个小型 MVC 应用程序。我注册了免费试用版,下载了我的发布配置文件并将其导入到 VS2012 中。发布到 Azure 并出现一些程序集引用错误。我通过将它们设置为复制 local = true 解决了这个问题,现在我得到:

    Not running in a hosted service or the Development Fabric. 
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.InvalidOperationException: Not running in a hosted service or the Development Fabric.

Source Error: 

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.  

Stack Trace: 


[InvalidOperationException: Not running in a hosted service or the Development Fabric.]
   Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitor.GetDefaultStartupInfoForCurrentRoleInstance() +447
   Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener..ctor() +40

[ConfigurationErrorsException: Could not create Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener, Microsoft.WindowsAzure.Diagnostics, Version=1.8.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35.]
   System.Diagnostics.TraceUtils.GetRuntimeObject(String className, Type baseType, String initializeData) +6792949
   System.Diagnostics.TypedElement.BaseGetRuntimeObject() +45
   System.Diagnostics.ListenerElement.GetRuntimeObject() +83
   System.Diagnostics.ListenerElementsCollection.GetRuntimeObject() +143
   System.Diagnostics.TraceInternal.get_Listeners() +181
   System.Diagnostics.TraceInternal.TraceEvent(TraceEventType eventType, Int32 id, String format, Object[] args) +155
   DotNetOpenAuth.Loggers.TraceLogger.Info(Object message) +26
   DotNetOpenAuth.Logger.CreateWithBanner(String name) +45
   DotNetOpenAuth.Logger..cctor() +14

[TypeInitializationException: The type initializer for 'DotNetOpenAuth.Logger' threw an exception.]
   DotNetOpenAuth.Logger.get_Library() +14
   DotNetOpenAuth.Reporting.Initialize() +410
   DotNetOpenAuth.Reporting.set_Enabled(Boolean value) +31
   DotNetOpenAuth.Reporting..cctor() +285

[TypeInitializationException: The type initializer for 'DotNetOpenAuth.Reporting' threw an exception.]
   Microsoft.Web.WebPages.OAuth.PreApplicationStartCode.Start() +41

[InvalidOperationException: The pre-application start initialization method Start on type Microsoft.Web.WebPages.OAuth.PreApplicationStartCode threw an exception with the following error message: The type initializer for 'DotNetOpenAuth.Reporting' threw an exception..]
   System.Web.Compilation.BuildManager.InvokePreStartInitMethodsCore(ICollection`1 methods, Func`1 setHostingEnvironmentCultures) +550
   System.Web.Compilation.BuildManager.InvokePreStartInitMethods(ICollection`1 methods) +132
   System.Web.Compilation.BuildManager.CallPreStartInitMethods(String preStartInitListPath) +90
   System.Web.Compilation.BuildManager.ExecutePreAppStart() +135
   System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters, PolicyLevel policyLevel, Exception appDomainCreationException) +516

[HttpException (0x80004005): The pre-application start initialization method Start on type Microsoft.Web.WebPages.OAuth.PreApplicationStartCode threw an exception with the following error message: The type initializer for 'DotNetOpenAuth.Reporting' threw an exception..]
   System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +9873912
   System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +101
   System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +254



--------------------------------------------------------------------------------

如果您在本地测试并将 Web 项目设置为启动项目而不是云项目,则如果看到此错误,但正如我所说,这在本地针对模拟器运行良好,但部署到 Azure 会导致失败。

我在这里缺少什么想法吗?

谢谢

最佳答案

尝试删除 web.config 中的 Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener 跟踪监听器配置。看这个related SO postDotNetOpenAuth.Logger 似乎与 WAD 冲突(Windows azure 诊断)。

web.config 中删除跟踪监听器:

<trace> 
    <listeners> 
        <add type="Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener, Microsoft.WindowsAzure.Diagnostics, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" name="AzureDiagnostics"> 
            <filter type="" /> 
        </add> 
    </listeners> 
</trace>

关于azure - 不在托管服务或开发结构中运行(生产,而不是调试/本地),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13879443/

相关文章:

twitter - 您将如何使用 Azure 表存储来处理类似 Twitter 的应用程序?

c# - Graph API - 使用 .Net Core 3.1 添加架构扩展

c# - MVC 5 表格没有发布?

javascript - MVC Jquery文件上传Request.Files始终为空

c# - DotNetOpenAuth 不适用于 MVC 5 RC

asp.net-mvc - 请求教程以向 NerdDinner ASP.NET MVC 应用程序添加 Openid 支持

管道中的 Azure 集群启动时间

c# - azure 中的文件存储。 GDI+ 中发生一般错误

forms-authentication - MVC 4 授权属性无法识别来自 ASP.Net 3.5 的表单授权

PayPal OpenId 与 MVC 连接