2011-02-23 28 views
2

我正在调用web服务,但未找到带有webservice绑定的.dll.config文件。 假设调用webservice的代码位于名为的webservicecall.dll的DLL中,并且生成的配置文件是webservicecall.dll.config。 这两个文件都位于IIS(6.0),DefaultWebSite \ TESTSERVER \ BIN在IIS中运行时找不到.dll.config文件

当调用使用Web服务的命令,我得到指示配置文件未找到错误。

要测试的Web服务调用,我创建了一个控制台应用程序TestWebServiceAccess.exe和使用相同的配置文件(只需将其重命名为TestWebServiceAccess.exe.config)。这工作正常。

即使在“webservicecall.dll”中的单元测试正确使用.dll.config文件,只是当整个东西托管在IIS中它不起作用。

这是错误:

Could not find default endpoint element that references contract 'WEBSERVICE1' in the ServiceModel client configuration section. This might be because no configuration file was found for your application, or because no endpoint element matching this contract could be found in the client element.

是否有任何IIS配置选项来得到的东西的工作?

回答

7

.NET配置系统将而不是读取程序集的配置文件(.dll.config)。

您需要将您的配置放入主机应用程序的配置中 - 因为您正在IIS中运行,所以您需要将配置放入web.config中,以供.NET配置系统使用和解释它。

+0

谢谢,现在它工作! – 2011-02-23 10:22:13

+4

+1。我同意。我也想补充一点(通过解释)。不管你使用的是什么类型的应用程序。一个程序集(.NET中的.dll)总是加载到应用程序的内存空间中。所以就组件而言,它的“配置”文件就是应用程序的文件。对于ASP.NET应用程序,事情有点不同(但概念是相同的),因为ASP.NET应用程序也是有效的组装,并且由工作进程加载。所以他们做了一些“调整”,ASP.NET应用程序使用一个名为web.config的文件。而不是具有应用程序名称的配置文件。 – 2011-02-23 10:24:31

1

IIS中.config文件的文件名是web.config,它位于(或应该驻留)在应用程序的根目录中。如果您的IIS上只有一个网站/ web服务(应用程序),则web.config最可能位于您网站的根文件夹中。就你而言,它也可能在\ testserver文件夹中找到。

子文件夹中的web.config文件可以包含覆盖根文件夹中web.config文件中的键的键。

如果您使用的是Visual Studio,当您将Web服务添加到项目时,web.config文件应该由VS自动编辑。

相关问题