webservice绑定输入

时间:2012-09-12 17:50:00

标签: asp.net web-services wsdl asmx

我正在使用.asmx webservice,并且遇到通过POST方法发送XML文件的麻烦。我相信这与webservice中的POST绑定有关,但老实说我不知道​​。不幸的是,由于各种原因,我无法转移到WCF。

如果我查看WSDL,POST绑定会显示输入类型“application / x-www-form-urlencoded”。但是,我的客户端无法以这种方式发送数据,并且必须使用POST方法,并且必须发送XML文件。

我已经确认该服务可以正常使用URLencoded方法。如果我将clientide mini-utility上的内容类型切换为“text / xml”,我会按预期获得“无效格式”响应。

我可以将POST绑定的服务器端输入类型更改为“text / xml”吗?

抱歉,我无法提供网络服务的网址。客户要求我不要透露这一点,但我可以根据需要发布其他详细信息。

以下是我的.asmx文件中的相关代码:

Imports System.Web.Services
Imports System.Web.Services.Protocols
Imports System.ComponentModel
Imports System.Xml

<System.Web.Services.WebService(Namespace:="https://My.Namespace.com/", Name:="ProcessSO", Description:="Process incoming Sales Order XML")> _
<System.Web.Services.WebServiceBinding(ConformsTo:=Services.WsiProfiles.None)> _
<ToolboxItem(False)> _
Public Class ProcessSO

Inherits System.Web.Services.WebService

 <WebMethod()> _
Public Function SalesOrderIn(ByVal XMLIn As String) As XmlDocument

    Dim msConfig As System.Configuration.Configuration
    msConfig = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(System.Web.Hosting.HostingEnvironment.ApplicationVirtualPath) 

    Dim filePath As String = msConfig.AppSettings.Settings("POSaveDirectory").Value
    Dim sFile As String = System.IO.Path.Combine(filePath, "temp_in.txt")

    Using s As New System.IO.StreamWriter(sFile) 'filePath & "\temp_in.txt")
        s.Write(XMLIn.ToString)
        s.Flush()
        s.Close()
    End Using

    Return CreateReturnXML("1", "XML Data Recieved")
End Function
End Class

0 个答案:

没有答案