【问题标题】:ssl-based wcf service does not work in azure emulator基于 ssl 的 wcf 服务在 azure 模拟器中不起作用
【发布时间】:2013-04-28 12:19:16
【问题描述】:

如果我将 Web 角色放在 IIS 中运行,则服务会按预期运行。 但是,它在 azure 模拟器中不起作用。错误页面显示“500 - 内部服务器错误。您要查找的资源有问题,无法显示。”

我怀疑这是由以下设置引起的:

<system.webServer>
        <security>
           <access sslFlags="Ssl, SslNegotiateCert, SslRequireCert" />
        </security>
 </system.webServer>

但我已经设置了一个启动任务,如下所示:

<WebRole name="WCFServiceWebRole" vmsize="ExtraSmall">
    <Startup>
      <Task commandLine="startup\unlockSession.cmd" executionContext="elevated" />
    </Startup>
</WebRole>

它的内容是:

%windir%\system32\inetsrv\appcmd 解锁配置 /section:system.webServer/security/access

有人遇到过同样的问题吗?救命!

提前致谢!!

【问题讨论】:

  • 很可能不是您的启动脚本导致问题 - 通常那里的问题会导致角色甚至无法启动。但是这里没有足够的信息来说明问题到底是什么。查看您的事件日志,在 WebRole.cs 和/或 Global.asax 应用程序错误处理程序中设置断点,并通常尝试收集更多信息。您还可以检查 web.config 中的错误 - 这是导致此问题的常见原因。

标签: wcf ssl azure iis-express


【解决方案1】:

您是否在 servicedefinition 文件中启用了 SSL 端点,如下所示

<Endpoints>
      <InputEndpoint name="Endpoint1" protocol="https" port="443" certificate="SSLcertificate" />
    </Endpoints> <Certificates>
      <Certificate name="SSLcertificate" storeLocation="LocalMachine" storeName="My" />
    </Certificates>

【讨论】:

    【解决方案2】:

    这可能是因为您的模拟器使用的是 IIS Express 而不是完整的 IIS。如果appcmd 会有另一条路径:C:\Program Files\IIS Express\appcmd.exe

    但要获得更正确和完整的解决方案,请参阅question

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-12
      相关资源
      最近更新 更多