
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();
}

组件设计器生成的代码#region 组件设计器生成的代码
//Web 服务设计器所必需的
private IContainer components = null;

/**//// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()

{
}

/**//// <summary>
/// 清理所有正在使用的资源。
/// </summary>
protected override void Dispose( bool disposing )

{
if(disposing && components != null)

{
components.Dispose();
}
base.Dispose(disposing);
}
#endregion

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, '&').replace(/'/g, '"').replace(/</g, '<').replace(/>/g, '>');
}

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') + 5, 3 );

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
阅读(
568)
评论()
收藏
举报