【问题标题】:WCF SOAP 404 errorWCF SOAP 404 错误
【发布时间】:2023-03-21 05:27:01
【问题描述】:

我开发了一个 WCF SOAP Web 服务,出于测试目的,我使用了 SOAP UI,但我遇到了以下问题:

1) 我使用这样的 ip 地址测试 Web 服务:

http://XXX.XXX.XXX.XXX:81/SIDIGE.Web.Service.CanDoc.svc?wsdl

一切正常,我可以毫无问题地使用网络服务

2) 现在,如果我像这样(使用主机名)测试 Web 服务:

http://hp_webserver:81/SIDIGE.Web.Service.CanDoc.svc?wsdl

当我将信息 POST 到服务器时出现 404 错误(如果我使用浏览器并输入它可以工作的地址,则不会出现 404 错误)

我已阅读有关此的所有问题,但似乎没有任何效果....有什么想法吗?

我的 web.config 是:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <connectionStrings>
        <add name="servidorRemoto" connectionString="Data Source=XXX\XXX; Initial Catalog=XXX" providerName="System.Data.SqlClient" />
    </connectionStrings>
    <appSettings>
        <add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" />
    </appSettings>
    <system.web>
        <compilation debug="true" />
    </system.web>
    <!-- When deploying the service library project, the content of the config file must be added to the host's 
  app.config file. System.Configuration does not support config files for libraries. -->
    <system.serviceModel>
        <services>
            <service name="SIDIGE.Web.Service.CanDoc" behaviorConfiguration="ServiceBehavior">
                <endpoint address="CanDoc" binding="basicHttpBinding" contract="SIDIGE.Web.IService.ICanDoc" bindingNamespace="http://sidige.com/candoc" />
                <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
                <host>
                    <baseAddresses>
                        <add baseAddress="http://XXX.XXX.XXX.XXX:81" />
                    </baseAddresses>
                </host>
            </service>
        </services>
        <behaviors>
            <serviceBehaviors>
                <behavior name="ServiceBehavior">
                    <serviceMetadata httpGetEnabled="True" httpsGetEnabled="True" />
                    <serviceDebug includeExceptionDetailInFaults="True" />
                    <useRequestHeadersForMetadataAddress>
                        <defaultPorts>
                            <!-- Use your own port numbers -->
                            <add scheme="http" port="81" />
                        </defaultPorts>
                    </useRequestHeadersForMetadataAddress>
                </behavior>
            </serviceBehaviors>
        </behaviors>
    </system.serviceModel>
    <system.webServer>
        <directoryBrowse enabled="false" />
    </system.webServer>
</configuration>

【问题讨论】:

  • 测试第二个场景时是否更改了 web.config 中的“baseAddress”?
  • 不,我没有(我有另一台服务器在这两种情况下都可以正常工作)
  • 如果您在 IIS 上托管服务,则基地址由 IIS 虚拟目录和 .svc 文件确定。我会说您不需要在配置文件中使用基地址元素。由 IIS 决定

标签: c# web-services wcf soap wsdl


【解决方案1】:

问题不在于我或配置。它是测试客户端(SOAP UI)。代理网络似乎有一些问题。

【讨论】:

    猜你喜欢
    • 2010-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    相关资源
    最近更新 更多