【发布时间】:2015-07-13 11:10:25
【问题描述】:
我在运行 Windows Server 2012 r2 的虚拟机上设置了 SOAP 服务。 我使用 NTLM 保护它,并设法使用 SoapUI 从主机访问它。到目前为止一切顺利...
我现在尝试访问我的服务,仍然是从主机,但这次使用的是 golang 程序。我正在使用this library 来执行此操作(我只需要实现 GenerateNegotiateMessage() 方法并确保 Negotiate 标志与 SoapUI 的标志相同)。
为了确保我做对了,我下载了 SoapUI 的源代码,并比较了我的 golang 程序和 SoapUI 的输出(NegotiateMessage 和 AuthenticateMessage)。如果我修复输入(时间戳和随机客户端质询),我会得到相同的输出。但是,当我尝试连接到该服务时,我收到一个 401 并显示“由于凭据无效而拒绝访问”。无需说我 100% 确定凭据是正确的,因为我能够使用 SoapUI 使用相同的凭据访问服务。所以我的go代码一定有问题。但要弄清楚,我需要来自我的 Windows Server 的更多日志。知道我可以从哪里开始寻找吗?
下面是我的 Soap 服务的 web.config:
<?xml version="1.0"?>
<configuration>
<appSettings>
<add key="aspnet:UseTaskFriendlySynchronizationContext" value="true"/>
</appSettings>
<system.web>
<compilation debug="true" targetFramework="4.5"/>
<httpRuntime targetFramework="4.5"/>
<trace enabled="true" pageOutput="true" requestLimit="40" localOnly="false"/>
</system.web>
<system.serviceModel>
<diagnostics wmiProviderEnabled="true">
<messageLogging
logEntireMessage="true"
logMalformedMessages="true"
logMessagesAtServiceLevel="true"
logMessagesAtTransportLevel="true"
maxMessagesToLog="3000"
/>
</diagnostics>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="false"/>
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
</behaviors>
<bindings>
<basicHttpBinding>
<binding>
<security mode="TransportCredentialOnly">
<transport clientCredentialType="Ntlm" />
</security>
</binding>
</basicHttpBinding>
</bindings>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true"/>
</system.serviceModel>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
<directoryBrowse enabled="true"/>
</system.webServer>
<system.diagnostics>
<sources>
<source name="System.ServiceModel" switchValue="All" propagateActivity="true">
<listeners>
<add name="myListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="C:\logs\TextWriterOutput.log"/>
</listeners>
</source>
</sources>
</system.diagnostics>
</configuration>
非常感谢您的帮助!
【问题讨论】:
-
Gpack,仅供参考 Stack Overflow 不是一个论坛,用 [已解决] 更不用说“标记”标题了。相反,接受的答案的存在将其标记为“已回答”,以便显示和搜索。
-
明白。对不起...
标签: web-services soap go ntlm windows-server-2012-r2