【问题标题】:Request Error IIS Method call请求错误 IIS 方法调用
【发布时间】:2016-01-21 08:59:24
【问题描述】:

我在我的 IIS 中托管 WCF 服务,我遇到了如下所示的错误:

请求错误

服务器在处理请求时遇到错误。请参阅 用于构建对服务的有效请求的服务帮助页面。这 异常消息是“用户 'IIS APPPOOL\TEST' 登录失败。”。看 服务器日志了解更多详情

我用这个链接调用我的方法:http://192.168.1.111/TruckService.svc/getAllCompA 从浏览器我可以访问TruckService.svc 文件,只有方法会抛出错误。

服务帮助链接显示了这些方法:http://192.168.1.111/TruckService.svc/help不知道这是否会有所作为?

没有太多信息可以使用,我用谷歌搜索了错误,但似乎找不到类似的问题。

有什么想法吗?

【问题讨论】:

    标签: c# asp.net wcf iis


    【解决方案1】:

    这部分错误信息告诉你很多,其实:

    “异常消息是'用户'IIS APPPOOL\TEST'登录失败。'”

    您没有在问题中提供大量信息,但我敢打赌您的服务使用的是 SQL 数据库(Login failed for user 是一个相当常见的 SQL 错误)。

    假设您的连接字符串是正确的,基于您最有可能使用集成安全性的错误,这意味着该服务正在尝试使用运行它的凭据登录到 SQL,在本例中为 IIS APPPOOL\TEST

    如果您想继续使用集成安全性,则需要在具有适当权限的帐户下运行应用程序以登录 SQL 服务器。或者,您可以更新连接字符串以使用用户名和密码。就个人而言,我更喜欢集成安全性。

    最后,您是否按照错误提示检查了服务器日志以获取更多详细信息?

    已添加

    要查看/更改运行应用程序池的帐户,请转到 IIS 管理器(从开始菜单或在命令提示符下键入 inetmgr)。在左侧窗格中,展开树视图,以便看到 Application Pools 节点,然后单击该节点。

    选择应用程序池(在您的情况下为TEST),右键单击并从上下文菜单中选择“高级设置...”。

    这将打开一个新屏幕,您可以看到当前正在运行该应用程序池的帐户:

    单击省略号 (...),这将打开另一个窗口,您可以在其中设置帐户:

    单击自定义帐户按钮,然后单击“设置..”)。

    最后,输入账号(你可能需要输入域名,比如MyCompany\UserName),输入密码,确认密码,点击确定。

    请注意,如果密码发生更改,应用程序池将不会运行,直到通过上述步骤更新密码。

    【讨论】:

    • 是的,我确实有一个 SQL express 数据库并运行 .net WCF RESTful 服务。添加网站时默认创建连接字符串data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true
    • @RGdent - Integrated Security=SSPI 表示我在回答中所说的 - 运行 WCF 服务的凭据将用于登录 SQL 服务器,在这种情况下是应用程序池。最简单的解决方案是在具有 SQL 服务器登录权限的帐户下运行 WCF 服务。
    • 对不起,我的无能,如何查看我的服务在哪个帐户下运行以查看权限?
    猜你喜欢
    • 2016-04-14
    • 1970-01-01
    • 2014-08-23
    • 1970-01-01
    • 2019-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多