0

我有一个 Web 服务,一旦部署就神秘地需要其他 DLL 才能工作。

我有一个在C:\inetpub\wwwroot\MyWebsite中运行的网站和在C:\inetpub\wwwroot\MyWebsite\WebService中运行的 Web 服务

我在 IIS 中的 MyWebsite 网站下创建了一个应用程序(WebService,指向 C:\inetpub\wwwroot\MyWebsite\WebService)

运行 WebService 的 .svc 之一时,我得到:

Could not load file or assembly 'Blah.Web' or one of its dependencies. The system     cannot find the file specified. 
Description: An unhandled exception occurred during the execution of the current web    request. Please review the stack trace for more information about the error and where it    originated in the code. 

Exception Details: System.IO.FileNotFoundException: Could not load file or assembly   'Blah.Web' or one of its dependencies. The system cannot find the file specified.

Blah.web 是用于 MyWebsite 的 DLL。为什么我的 WebService 突然需要这个 VS 2010 中甚至没有引用的 DLL?

它是 web.config 的东西吗?

谢谢,

4

1 回答 1

0

这是因为您的 Web 服务嵌套在您的网站中,所以当您的网站自动编译时,它正在编译您的主网站和 Web 服务网站中的代码。但是,由于编译器是在主网站的上下文中运行的,所以它在 mywebsite\bin 中查找代码,而不是在 \mywebsite\myservice\bin 中。

就个人而言,我会更改架构并将 Web 服务站点分开,而不是嵌套。它至少应该是它自己的 Web 应用程序(在 IIS 中配置)或单独的网站。

于 2012-07-04T18:49:26.233 回答