Provision,webservice怎么接收dsmp发过来的包?


webservice实现了的Provision接口,不明白服务如何接收数据包。
dsmp请求的是个类似下面Url的Url
[url]http:
//www.url.com:7000[/url]
在服务器上该地址已指向webservice文件
在那里接收,对webservice了解不多。
谢谢!
~
基本代码如下:
  
using   System;   
  
using   System.Collections;   
  
using   System.ComponentModel;   
  
using   System.Data;   
  
using   System.Diagnostics;   
  
using   System.Web;   
  
using   System.Web.Services;   
  
using   System.Web.Services.Protocols;   
  
using   System.Xml;   
  
using   System.Xml.Serialization;   
  
using   System.Web.Services.Description;   
  
using   System.IO;   
  
using   System.Text;   
    
  
namespace   Provision   
  
{   
  
///   <summary>   
  
///   Dsmp   的摘要说明。   
  
///   </summary>   
  
///     

  [XmlRoot(Namespace="http://www.monternet.com/dsmp/schemas/")]   
  
public   class   TransactionID   :   SoapHeader   
  
{   
  [XmlText(
typeof(string))]   
  
public   string   ID;   
  }
   
    
  
public   class   UserID   
  
{   
  
public   int   UserIDType;   
  
public   string   MSISDN;   
  
public   string   PseudoCode;   
  }
   
    
  
public   class   AddressInfo   
  
{   
  
public   int   DeviceType;   
  
public   string   DeviceID;   
  }
   
    
  
public   class   SyncOrderRelationResp   
  
{   
  
public   string   Version;   
  
public   string   MsgType;   
  
public   int   hRet;   
  }
   
    
  [WebService(Namespace
="http://www.monternet.com/dsmp/schemas/")]   
  [SoapDocumentService(RoutingStyle
=SoapServiceRoutingStyle.RequestElement)]   
  
public   class   Provision   :   System.Web.Services.WebService   
  
{   
  
public   Provision()   
  
{   
  
//CODEGEN:   该调用是   ASP.NET   Web   服务设计器所必需的   
  InitializeComponent();   
  }
   
    
    
    
  
组件设计器生成的代码   

    
  
public   TransactionID   transID;   
  
public   TextWriter   w;   
    
  
///   <summary>   
  
///   正向订购服务   
  
///   </summary>   
  
///   <param   name="Version"></param>   
  
///   <param   name="MsgType"></param>   
  
///   <param   name="Send_Address"></param>   
  
///   <param   name="Dest_Address"></param>   
  
///   <param   name="FeeUser_ID"></param>   
  
///   <param   name="DestUser_ID"></param>   
  
///   <param   name="LinkID"></param>   
  
///   <param   name="ActionID"></param>   
  
///   <param   name="ActionReasonID"></param>   
  
///   <param   name="SPID"></param>   
  
///   <param   name="SPServiceID"></param>   
  
///   <param   name="AccessMOde"></param>   
  
///   <param   name="FeatureStr"></param>   
  
///   <param   name="hRet"></param>   

  [WebMethod]   
  [SoapHeader(
"transID",   Direction=SoapHeaderDirection.InOut)]   
  [SoapDocumentMethod(
"sim.SyncOrderRelation",RequestElementName="SyncOrderRelationReq",ResponseElementName="SyncOrderRelationResp")]   
  [
return:   System.Xml.Serialization.SoapElementAttribute("return")]   
  
public   void   SyncOrderRelationReq(   
  
ref   string   Version   ,   
  
ref   string   MsgType,   
  AddressInfo   Send_Address,   
  AddressInfo   Dest_Address,   
  UserID   FeeUser_ID,   
  UserID   DestUser_ID,   
  
string   LinkID,   
  
int   ActionID,   
  
int   ActionReasonID,   
  
string   SPID,   
  
string   SPServiceID,   
  
int   AccessMOde,   
  
byte[]   FeatureStr,   
  
out   int   hRet   
  )   
  
{   
    
  Version
="1.5.0";   
  MsgType   
=   "SyncOrderRelationResp";   

  hRet   
=   0   
// 下面是业务处理   
  }
   
  }

aden 
2006-12-22 11:25
用ProvisionClient.exe模拟测试,在本地可以正常接收请求并返回数据包,
在公网上请求正常,返回错误,
下面是返回包:

2006-12-22 11:23:19
返回Resp了:
2006-12-22 11:23:19
HTTP
/1.1 405 Method not allowed
Server: Microsoft
-IIS/5.0
Date: Fri, 
22 Dec 2006 03:23:19 GMT
Allow: OPTIONS, TRACE, GET, HEAD
Content
-Length: 3647
Content
-Type: text/html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<html dir=ltr>

<head>
<style> a:link                        {font:9pt/11pt 宋体; color:FF0000} a:visited                {font:9pt/11pt 宋体; color:#4e4e4e}
</style>

<META NAME="ROBOTS" CONTENT="NOINDEX">

<title>网页无法显示</title>

<META HTTP-EQUIV="Content-Type" Content="text-html; charset=gb2312">
<META NAME="MS.LOCALE" CONTENT="ZH-CN">
</head>

<script>
function Homepage()
{
<!--
// in real bits, urls get returned to our script like this:
// res://shdocvw.dll/http_404.htm#[url]http://www.DocURL.com/bar.htm[/url]

        
//For testing use DocURL = "res://shdocvw.dll/http_404.htm#[url]https://www.microsoft.com/bar.htm[/url]"
        DocURL=document.URL;

        
//this is where the http or https will be, as found by searching for :// but skipping the res://
        protocolIndex=DocURL.indexOf("://",4);

        
//this finds the ending slash for the domain server
        serverIndex=DocURL.indexOf("/",protocolIndex + 3);

        
//for the href, we need a valid URL to the domain. We search for the # symbol to find the begining
        
//of the true URL, and add 1 to skip it - this is the BeginURL value. We use serverIndex as the end marker.
        
//urlresult=DocURL.substring(protocolIndex - 4,serverIndex);
        BeginURL=DocURL.indexOf("#",1+ 1;
        urlresult
=DocURL.substring(BeginURL,serverIndex);

        
//for display, we need to skip after http://, and go to the next slash
        displayresult=DocURL.substring(protocolIndex + 3 ,serverIndex);
        InsertElementAnchor(urlresult, displayresult);
}


function HtmlEncode(text)
{
    
return text.replace(/&/g, '&amp').replace(/'/g, '&quot;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
}


function TagAttrib(name, value)
{
    
return ' '+name+'="'+HtmlEncode(value)+'"';
}


function PrintTag(tagName, needCloseTag, attrib, inner)
{
    document.write( 
'<' + tagName + attrib + '>' + HtmlEncode(inner) );
    
if (needCloseTag) document.write( '</' + tagName +'>' );
}


function URI(href)
{
    IEVer 
= window.navigator.appVersion;
    IEVer 
= IEVer.substr( IEVer.indexOf('MSIE'+ 53 );

    
return (IEVer.charAt(1)=='.' && IEVer >= '5.5'?
        encodeURI(href) :
        escape(href).replace(
/%3A/g, ':').replace(/%3B/g, ';');
}


function InsertElementAnchor(href, text)
{
    PrintTag(
'A'true, TagAttrib('HREF', URI(href)), text);
}


//-->
</script>

<body bgcolor="FFFFFF">

<table width="410" cellpadding="3" cellspacing="5">

  
<tr>
    
<td align="left" valign="middle" width="360">
        
<h1 style="COLOR:000000; FONT: 12pt/15pt 宋体"><!--Problem-->网页无法显示</h1>
    
</td>
  
</tr>

  
<tr>
<td width="400" colspan="2"> <font style="COLOR:000000; FONT: 9pt/11pt 宋体">网页地址不正确,因此您要寻找的网页无法显示。</font> </td>
  
</tr>

  
<tr>
    
<td width="400" colspan="2"> <font style="COLOR:000000; FONT: 9pt/11pt 宋体">

        
<hr color="#C0C0C0" noshade>

<p>请尝试下列操作:</p>

        
<ul>
<li>如果您在“地址”栏中键入了网页地址,请检查地址输入是否正确。<br>
      
</li>

<li>打开 <script>
           
<!--
           
if (!((window.navigator.userAgent.indexOf("MSIE"> 0&& (window.navigator.appVersion.charAt(0== "2")))
           
{
                    Homepage();
           }

           
//-->
           </script> 主页,寻找指向所需信息的链接。</li>
    
</ul>

<h2 style="COLOR:000000; FONT: 9pt/11pt 宋体">HTTP 405 - 资源被禁止<br> Internet 信息服务</h2>

        
<hr color="#C0C0C0" noshade>

        
<p>技术信息(支持个人)</p>

<ul>
<li>详细信息:<br><a href="http://www.microsoft.com/ContentRedirect.asp?prd=iis&sbp=&pver=5.0&pid=&ID=405&cat=web&os=&over=&hrd=&Opt1=&Opt2=&Opt3=" target="_blank">Microsoft 支持</a>
</li>
</ul>

    
</font></td>
  
</tr>

</table>
</body>
</html>

2006-12-22 11:23:19
返回的RESP数据有错误
2006-12-22 11:23:19
MsgType: 
TransactionID: 
Version: 
hRet: 
2006-12-22 11:23:19
连接断开了
posted @ 2008-06-05 22:39  wenanry  阅读(562)  评论(0编辑  收藏  举报