【问题标题】:How to debug: WCF service call works in VS, but not in IIS如何调试:WCF 服务调用在 VS 中有效,但在 IIS 中无效
【发布时间】:2011-01-23 08:56:45
【问题描述】:

我正在尝试使用 ASP.Net AuthenticationService 从我的 Silverlight 应用程序中对用户进行身份验证。我有一个 Web 应用程序,其服务指向“System.Web.ApplicationServices.AuthenticationService”。我的 web.config 定义了服务、端点、绑定、行为等。对于会员数据库,我使用的是带有 MDF 文件的 SQL Express。

我相当肯定所有这些设置都正确,因为如果我在 Visual Studio 中运行它,一切正常。我的 Silverlight 应用调用 AuthenticationService,传入用户名和密码,然后返回响应。

但是,当我部署到 IIS 时,调用 AuthenticationService 总是响应异常:“远程服务器返回错误:未找到”

我怀疑这与 SQL Express 有关,但无法查明问题所在。我尝试在系统帐户下运行 SQL Express。我尝试为网络服务帐户授予对我的 App_Data 文件夹的完全权限。我尝试了很多不同的连接字符串。

在任何情况下,任何人都可以提供有关如何使用 SQL Express 和 IIS 的 AuthenticationService 部署 Silverlight 应用程序的任何提示或参考吗?

更新:我安装了 SQL Server 2008 的试用版并得到相同的结果。使用 Visual Studio 运行时,我可以让一切正常工作,但不能在 IIS 中运行。如果有人有关于如何在 IIS 中使用 Silverlight 的 AuthenticationService 的参考或教程,我将不胜感激。

更新 2:问题出在我在 SQL Server 中的身份验证设置上。正如 cmets 中所建议的那样,我能够通过启用跟踪来跟踪这一点。我已将问题更新为关于如何调试此类问题,您的服务调用在 Visual Studio 中工作但在 IIS 中不工作。

【问题讨论】:

  • 请注意,我不会这么快就假设错误是在访问 SQL 级别。你确定代码有那么远吗?当您不知道 Silverlight 的跨域策略时,它并不能完全实现互操作。
  • 阅读如何向 web.config 添加诊断:msdn.microsoft.com/en-us/library/ms733025.aspx。设置 switchValue="Error, Critical" 并详细指定异常。
  • @Mr.失望,我知道如果我完全取消身份验证,我的 Silverlight 应用程序可以正常访问我的其他 Web 服务。当我锁定对其他服务的访问并尝试首先进行身份验证时,它只会给我这个错误。
  • @vorrtex,感谢您的链接。我会试一试,看看能否获得有关该问题的更多详细信息。
  • @vorrtex,正如我在编辑中指出的那样,您打开跟踪的建议帮助我找到了问题所在。我将我的问题改为关于如何调试 WCF 调用在 VS 而不是 IIS 中工作的问题。继续发表您的评论作为答案。

标签: visual-studio wcf debugging iis


【解决方案1】:

例如,我已将此代码添加到配置中:

<system.diagnostics>
<sources>
  <source name="System.ServiceModel" switchValue="Critical,Error" >
    <listeners>
      <add name="xml" />
    </listeners>
  </source>
    <source name="System.ServiceModel.MessageLogging" switchValue="Critical,Error">
      <listeners>
        <add name="xml" />
      </listeners>
    </source>
</sources>
<sharedListeners>
  <add initializeData="D:\WcfLog.svclog" type="System.Diagnostics.XmlWriterTraceListener" name="xml" />
</sharedListeners>
<trace autoflush="true" />

Microsoft Service Trace Viewer 可以打开扩展名为“*.svclog”的文件。 现在例外情况更加明显。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-30
    • 1970-01-01
    • 1970-01-01
    • 2020-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多