【问题标题】:Service developed on 32bit windows xp pro, fails to run on windows server 2003 64-bit在 32 位 windows xp pro 上开发的服务,无法在 windows server 2003 64 位上运行
【发布时间】:2009-03-13 18:52:18
【问题描述】:

开发了一个 Windows 服务并在 32 位机器上运行。它与 Project Web Access Web 服务通信。现在,该服务已移动到与 Project Web Access Web 服务相同的计算机上。代码失败,我收到此错误:

System.Net.WebException: 请求失败,HTTP 状态 401: 未经授权。在 System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage 消息、WebResponse 响应、流 responseStream,布尔 asyncCall)
在 System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(字符串 方法名,对象 [] 参数)在 ProjToolService.ProjectWebSvc.Project.ReadProject(Guid projectUid, DataStoreEnum dataStore)
在 ProjToolService.Queue.AssignResource(Guid queueId, Guid projectId, Guid taskId, Guid resourceId, Guid assignmentId)

可能不是 32bit vs 64bit,但我没有其他想法。

目标平台是 x86,但使用 AnyCPU 也失败了。我也尝试过使用DefaultCredentialsSystem.net.CredentialCache.DefaultNetworkCredential

【问题讨论】:

    标签: .net web-services windows-services windows-server-2003


    【解决方案1】:

    401 是一种 HTTP 状态,因此它应该与 32 位和 64 位无关。我会检查并确保使用正确的凭据设置 Web 服务(特别是如果您计划使用匿名访问)。

    如果我没记错的话,DefaultNetworkCredential 会提取运行服务的帐户,所以我会检查以确保您使用的服务的帐户具有访问 Web 服务的适当权限。检查这一点的简单方法是为运行服务的帐户授予对机器的管理访问权限(然后在完成后将其取走)。如果它有效,那么这是一个权限问题。如果不是,那么你知道这是另一回事。

    要授予帐户权限,请转到管理工具 --> 计算机管理 --> 本地用户和组 --> 组。将网络用户添加到适当的组(就像我说的那样,我将从 admin 开始,然后逐步向下。)

    【讨论】:

    • 我的服务正在使用网络用户运行。我尝试了 DefaultNetorkCredential,但它没有用。不知道如何授予或知道他们的用户是否是机器的管理员 >.>
    【解决方案2】:

    您的服务以什么用户身份运行?请记住,本地用户等在未登录该框时不会运行,而服务器通常不会。网络用户可能工作。

    【讨论】:

    • 我的服务正在使用网络用户运行。我尝试了 DefaultNetorkCredential,但它没有用。不知道如何授予或知道他们的用户是否是机器的管理员 >.>
    【解决方案3】:

    Win2003 的安全设置比 WinXP 保守得多,尤其是在网络访问方面。在您的网络服务和系统日志中查找“拒绝访问”错误可能会更好,并确保您的服务(使用其确切名称,直到 URL 中的 ?)被允许访问服务请求。

    【讨论】:

      【解决方案4】:

      感谢所有的帮助和关注,但我终于发现了问题。问题是 win 服务与 web 服务在本地运行的问题。此问题特定于 Windows server 2003 操作系统。为了解决这个问题,我必须在名为 DisableLoopbackCheck 的注册表编辑器中创建一个新值,并将其设置为 1。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-12-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-17
        • 1970-01-01
        • 2012-01-26
        相关资源
        最近更新 更多