我的AngularJS应用程序需要将所有操作重定向到index.html进行处理,并且它在localhost上运行正常,但它在Azure中不起作用。 例如:
localhost:1234 - > localhost:1234 /#/ works
myapp.com - > myapp.com/#/不起作用
myapp.com/index.html - > myapp.com/index.html#/正常工作
我补充说:
<system.webServer xdt:Transform="Replace">
<rewrite>
<rules>
<rule name="redirect all requests" stopProcessing="true">
<match url="^(.*)$" ignoreCase="false" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" pattern="" ignoreCase="false" />
</conditions>
<action type="Rewrite" url="index.html" appendQueryString="true" />
</rule>
</rules>
</rewrite>
</system.webServer>
奇怪的是,这有时会起作用。我不能为我的生活弄清楚为什么有时会去myapp.com - &gt; myapp.com/#/工作,有时则不工作。它似乎也打破了myapp.com/index.html#/但有时只是。这不会进行任何部署更改。它的工作时间大约只有一半。
以下是实际的错误消息:
Microsoft.Owin,Version = 2.1.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其依赖项之一。定位的程序集的清单定义与程序集引用不匹配。 (HRESULT异常:0x80131040)
答案 0 :(得分:0)
它可能与应用程序启动有关。以下是一些故障排除方法。
重新启动您的应用。这是否可靠地导致错误?
启用应用程序日志记录。 portal.azure.com&gt;浏览全部&gt;网站名称&gt;设置&gt;诊断日志&gt;应用程序记录&gt;等级错误。如果您需要大量内容,请将level设置为verbose并打开Web服务器日志记录,详细错误消息和失败的请求跟踪。
在服务控制管理器上查看诊断 mysite.scm.azurewebsites.net。选择调试控制台&gt;电源外壳。现在,您可以查看bin
的日志。
根据您收到的错误,看起来Owin就是问题所在。检查您的网站cd site/wwwroot/bin
Get-ChildItem -filter *Owin*
,看看是否有任何Owin参考。在线服务控制管理器,您可以尝试:
--volumes-from
如果那里有任何东西,那么它可能是您收到的特定错误的原因。