【问题标题】:Windows azure development fabric load balancer crashes on DotNetOpenAuth redirect action mvc 2Windows azure 开发结构负载均衡器在 DotNetOpenAuth 重定向操作 mvc 2 上崩溃
【发布时间】:2010-08-04 19:34:57
【问题描述】:

我已将此错误归结为 DotNetOpenAuth(http://www.dotnetopenauth.net/) 的重定向操作调用

基本上我已经实现了这里的例子

http://www.dotnetopenauth.net/developers/code-snippets/programmatic-openid-relying-party/

在本地运行的应用程序中,我点击了这一行

return request.RedirectingResponse.AsActionResult();

此时它完成了此操作,然后 azure dev Fabric 负载均衡器崩溃。

这就是奇怪的地方。如果我逐行调试重定向操作,它不会崩溃。

有没有人看到这样的东西可以给我一些修复的方向?

@dthorpe 指出我应该告诉你我已经通过部署到生产环境对此进行了测试,这似乎确实有效。

【问题讨论】:

标签: windows asp.net-mvc-2 azure dotnetopenauth


【解决方案1】:

We had same problem。我目前知道没有修复程序,并且应用程序在部署在云中时仍然可以正常工作。

但出于本地测试的目的,我只是引入了开关(它可以是编译时 ifdef DEBUG 或配置开关)。每当尝试通过本地开发结构中的 OpenID 进行身份验证时,我们会立即假定身份是有效的,并由 DotNetOpenAuth 进行身份验证。这对我们很有用,并且可以推动开发向前发展。

【讨论】:

  • 这对我有用,我希望这不是答案,但鉴于你有同样的问题并且从未得到答案,我宣布这是最好的答案!
【解决方案2】:

我有一个解决办法。这是一个小技巧,但它确实有效,你不必伪造任何东西。

改变这个:

return request.RedirectingResponse.AsActionResult();

到这里:

string location = request.RedirectingResponse.Headers["Location"];
return Redirect(location);

这可以解决问题并允许继续进行身份验证。我将允许比我更聪明的人详细解释为什么会出现这种情况。

希望这会有所帮助!

【讨论】:

    【解决方案3】:

    如果有人想快速解决此问题,一个选项是关闭 Azure 诊断(如果您碰巧没有使用它)。这会在您创建项目时添加到 web.config,只需注释掉如图所示的“add”元素即可。

    <system.diagnostics>
      <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>
    

    当然,这会关闭诊断,所以只有在您不使用诊断时才这样做!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-12
      • 2017-07-07
      • 1970-01-01
      • 2017-03-10
      • 2013-12-25
      • 2014-08-28
      • 2011-09-22
      • 2017-01-17
      相关资源
      最近更新 更多