3

当我尝试在 Visual Studio 2012 中运行我的 wcf 时,我收到以下错误

用法:WcfSvcHost.exe /service:<PathToServiceDLL> /config:<PathToServiceConfig> [/client:<pathToClientApp>][/clientArgs:<argumentsToBePassedToClientApp>]

我读过一些博客,这些博客暗示环境可能有问题,但我可以成功运行不同的项目。

我的 app.config文件重要设置:

<endpoint address="" binding="wsHttpBinding" contract="Sac.Business.Interfaces.IManufacturer">
<service name="Sac.Business.Logic.ManufacturerLogic" behaviorConfiguration="ManufactuerBehave">
<behavior name="ManufactuerBehave">

我在另一个项目中的svc文件:

<%@ ServiceHost Language="C#" Debug="true" Service="Sac.Business.Logic.ManufacturerLogic" %>
<%@ Assembly Name="Sac.Business.Logic" %>

我不确定我可能会错过什么。

4

4 回答 4

3

这是您的项目可能存在的问题。右键单击解决方案资源管理器中的项目图标,然后选择属性。这将带您进入项目属性窗口。现在在属性窗口中转到调试选项卡。在“开始操作”部分的右窗格中,观察选定的选项按钮。我提到了我对 Visual Studio 2010 的观察,我希望它在 VS 2012 中也是一样的。现在 :

  1. 如果选择了“启动项目”选项按钮,则检查“启动选项”部分下的“命令行参数”字段。它应该具有值“/client:”WcfTestClient.exe”。如果这里有任何问题,请修复它以尝试解决您的问题。如果“命令行参数”字段为空,则完全没问题。您的 WCF 服务仍将被托管成功,唯一的区别是 wcftestclient 不会启动。
  2. 如果选择了“启动外部程序”选项按钮,则应显示WcfSvcHost.exe. 此路径特定于您正在使用的特定版本的 Visual Studio。对于我盒子上的 VS 2010,路径是"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\WcfSvcHost.exe". 在此之后检查“命令行参数”字段。它应该有价值"/service:wcfservicelibrary1.dll /config:wcfservicelibrary1.dll.config /client:WcfTestClient.exe"。这里/service, /config,/client是 WcfSvcHost.exe 的命令行参数。“wcfservicelibrary1.dll”是我的 wcf 服务库项目在项目的 /bin/debug 文件夹中创建的二进制文件的名称。"wcfservicelibrary1.dll.config"是我构建成功后在项目的/bin/debug文件夹中创建的我的wcf服务库项目的配置文件的名称。请注意,默认配置文件名从 更改"app.config""wcfservicelibrary1.dll.config"在构建过程之后。提及命令行参数时不应有拼写错误,即/service, /config, /client。通常,我们会犯拼写错误,因此我们会面临您所面临的问题。除了上面提到的三个命令行参数之外,还有一个命令行参数/clientArgs。我也在使用这个命令行参数,并且拼错了它/clientArg而不是/clientArgs. 一旦我更正了这个拼写,问题就解决了。

请查看这些观察是否可以帮助您摆脱问题。

于 2015-02-06T04:21:57.167 回答
2

我今天也遇到了这个问题。我的解决方法是右键单击项目(我有多个可供选择)并选择“设置为启动项目”,然后右键单击该项目中您计划运行的服务并选择“设置为起始页”。这解决了我的问题,希望对其他人有所帮助。

于 2014-02-18T18:32:41.123 回答
1

我看到很久以前就问过这个问题,但是今天我收到了这样的错误,也许答案会对某人有所帮助。

就我而言,原因是项目中没有配置文件。我正在使用包含 app.config 文件的其他主机项目,并且在将 wcf 服务设置为启动项目以进行调试之后,Visual Studio 看不到它。如果是这样,只需将 app.config 从主机复制到 wcf 项目。

于 2014-01-27T08:43:29.863 回答
0

只需在“我的文档”中删除您的 IIS Express 文件夹,关闭并重新启动您的解决方案。这就是我能够解决我的问题的方式。

于 2014-08-27T08:16:30.177 回答