【发布时间】:2010-11-08 07:20:20
【问题描述】:
我们的应用程序访问 WCF 服务,该服务由单台计算机上的 Windows 服务托管。客户端应用程序和服务将始终位于同一台计算机上。
我创建了一个托管 WCF 服务的 Windows 服务。为了测试我的 Windows 服务代码,我创建了一个控制台应用程序,其中包含与我的 Windows 服务相同的 app.config 和代码。我在一个调试线程中启动控制台应用程序,并在另一个调试线程中启动我的客户端。一切正常,我可以轻松使用调试器。
现在问题...
所以,我创建了一个安装程序并安装了我的 Windows 服务。成功启动后,我在 Visual Studio 2010 中使用http://localhost/VssService 成功将服务引用添加到我的客户端。我通过“附加到进程”成功附加到服务。我在调试线程中启动了我的客户端,但是当我尝试进入远程方法时,我得到“无法自动进入服务器。调试器未能在服务器进程中停止。” [NetNamedPipeBinding_IVssService] 和 [BasicHttpBinding_IVssService] 都会发生这种情况。我已经为此苦苦挣扎了几个小时并且已经没有想法了,所以我希望你能帮助我。我已经为我的 Windows 服务和客户端应用程序包含了 app.config 文件。希望他们能提供帮助。
感谢您抽出宝贵时间阅读此问题,并希望您能帮助解决此问题...
迈克
===================== SERVICE APP.CONFIG ====================== =======
<services>
<service behaviorConfiguration="VssServiceBehavior" name="ClientSaver.VssService.VssService">
<endpoint address="net.pipe://localhost/VssService/Pipe/" binding="netNamedPipeBinding"
bindingConfiguration="" contract="ClientSaver.VssService.IVssService" />
<endpoint address="http://localhost/VssService/" binding="basicHttpBinding"
bindingConfiguration="" contract="ClientSaver.VssService.IVssService" />
<endpoint address="http://localhost/VssService/MEX/" binding="mexHttpBinding"
bindingConfiguration="" contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="http://localhost/VssService/" />
</baseAddresses>
</host>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="VssServiceBehavior">
<serviceMetadata httpGetEnabled="True" policyVersion="Policy15" />
<serviceDebug includeExceptionDetailInFaults="False" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
========================== CLIENT APP.CONFIG ================== ===========
<endpoint address="http://localhost/VssService/" binding="basicHttpBinding"
bindingConfiguration="" contract="ClientSaver.VssService.IVssService" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="VssServiceBehavior">
<serviceMetadata httpGetEnabled="true" policyVersion="Policy15" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
【问题讨论】:
-
要标记为答案,请单击其中一个答案左侧的 Tik(耐克标志)图标。
-
请注意:您可以通过跟踪和事件记录完成大部分 WCF 初始开发。请查看以下链接:msdn.microsoft.com/en-us/library/ms733025.aspx.
-
也请检查此线程:stackoverflow.com/questions/1447364/…。您可能想要检查提供的答案中的链接。