【问题标题】:Why is my WCF hosted in IIS not working unless I am debugging?为什么我在 IIS 中托管的 WCF 不工作,除非我在调试?
【发布时间】:2017-07-14 16:39:15
【问题描述】:

我在本地机器的 IIS 中托管了一个 WCF 应用程序。 IIS 和主机文件中的主机名是“serv.xxxx.local”。我的应用程序池在 IIS 中运行,我的 net.tcp 端口共享服务也在我的服务中运行。

但是,当我尝试从我的 MVC 应用程序中使用此 wcf 服务时,它不起作用,除非我将我的 WCF 项目附加到 Visual Studio 中的进程。

为什么我可以直接使用我的 WCF 服务而不在 Visual Studios 中进行调试

顺便说一句,我正在运行 WINDOWS 10,我注意到 IIS 中的网站没有自动启动。

【问题讨论】:

  • 您能否跟踪您的 MVC 应用程序使用的 WCF url。我猜你有一个存储 url 的 web.config 文件问题。?此外,如果一切都是本地的,为什么不尝试使用 localhost?
  • @ife labolz,您的意思是它在调试 WCF 项目期间运行良好,但在运行 Web 客户端时无法运行?如果是这样,我认为Dhawalk的建议是正确的,您需要检查您是否真的正确配置了web.config。stackoverflow.com/questions/19351081/…blah.winsmarts.com/…,当然如果您收到任何错误消息,也请在这里分享。
  • @ife labolz,你现在可以运行你的客户端应用了吗?
  • @JackZhai-MSFT 我仍然无法澄清,我在 IIS 中托管了我的 WCF,我通常使用类似 serv.flee.local 的 url 运行我的项目,这是一个 MVC 应用程序调用我的 WCF 项目。例如,当用户从提供的 url 登录到该应用程序时,它会对 WCF 项目进行服务调用,现在这似乎只在 WCF 处于调试模式时才有效,所以当我从 Visual Studio 运行项目时。它不应该是这种情况,因为它已经托管在 IIS 中(mvc 应用程序和 wcf 应用程序),并且应用程序池正在运行。

标签: visual-studio wcf iis


【解决方案1】:

问题在于为我的 WCF 服务配置的应用程序池无权访问我的 SQL Server 数据库。我必须将应用程序池添加到 SQL Server 中的登录列表。

为此:

1) 打开 SQL Server

2) 展开安全树

3) 右键点击“登录”

4) 添加您的应用程序池。例如“IIS AppPool\”并点击确定,

5) 右键单击​​刚刚创建的登录名并单击属性,然后在 UserMappings 选项卡中,选择您要访问的数据库,然后选择 datareader 和 datawriter,单击确定。

之后一切都会好起来的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多