2

我有一个在 Azure 中运行的应用程序(试用帐户)。到目前为止一切都很好,除了很长的部署时间(10-15 分钟)之外,一切都很好。

我最近进行了一次部署,发现了很多我无法追踪的奇怪错误。例如,如果我登录并因此创建了一个 cookie(我使用 FormsAuthentication),那么我从应用程序中得到的只是一个空白页面,就像绝对没有任何东西发送到浏览器一样。该应用程序在 ASP.NET Web 开发服务器、IIS Express 甚至 Azure 模拟器中都能正常工作!

可能是什么问题?搜索网络并没有太大帮助,只有几个不相关的问题。

4

4 回答 4

2

我尝试登录该站点(如果我从评论中正确理解,则 url 是versulo.com)并且我没有得到任何带有 404 状态代码的空白页面。

但是,我发现了另一个问题。您的网站似乎不恰当地实施了缓存。主页,您触发登录的页面,本质上是动态的,其中包含在页面首次加载后 5 分钟设置的 Expires 标头。这意味着自首次加载后 5 分钟内到该页面的每个调用或重定向都将从浏览器的缓存中提供。

因此,在我登录到您的应用程序后,我被重定向回主页,看起来我没有登录。如果我在浏览器上强制 F5 刷新,那么页面确实会显示我已登录。

如果我尝试再次登录而不是刷新(这是我在第一次试验中所做的,因为看起来登录在第一次时不起作用),我会收到一个错误页面,其中包含以下消息:

抱歉,服务器出现错误。500

该页面看起来像一个应用程序错误页面,即使它显示 500 数字,它实际上也是使用 HTTP 200 提供的。

因此,虽然我不能 100% 确定这是否也是您描述的问题的原因,但您应该从应用程序正在服务的动态页面中删除 Expires 标头。

于 2012-04-26T17:55:23.600 回答
0

这可能是因为您将表单身份验证与多个实例组合在一起。您是否使用多个实例?如果是这样的话,你能不能:

于 2012-04-23T18:16:08.207 回答
0

一些局部视图根本不渲染;

你的意思是有些页面工作正常,但其他页面却不行?如果您能指出哪些有效哪些无效的模式会更好?现在,请确保所有引用的程序集(默认的 .NET 程序集和 Windows Azure 运行时除外)都将 Copy Local 设置为 true。例如,MVC 程序集被视为 .NET 的扩展,因此请将 Copy Local 设置为 true。此外,您还可以尝试使用 Fiddler 来监控请求,以查看服务器返回的内容。

最好的祝福,

明旭。

于 2012-04-24T07:09:55.397 回答
0

你能提供一个应用程序的链接,或者一些源代码吗?

当您说“空白页”时,实际返回的是 404 / 500?

您是否检查过 IIS 日志,或在代码中添加了一些跟踪信息?

您是否尝试过使用它的 IP 地址而不是域名来访问该服务?

于 2012-04-26T08:18:28.297 回答