可以为契约定义命名空间。契约的命名空间具有与.NET编程相同的目的:确定契约的类型范围,以降低类型的冲突几率。可以使用ServiceContract类型的Namespace属性设置命名空间:
[ServiceContract(Namespace ="http://error.zdit.cn")]
interface IMyContract
{...}
若非特别指定,契约的默认命名空间为http://tempuri.org。对外服务的命名空间通常使用公司的URL;
但是指定了Namespace,但是仍然出现了http://tempuri.org。看了很多文档仍然没有找到如何控制这个命名空间的地方,如有朋友遇到请留言。谢谢!(当然这个URL是http://tempuri.org也没有关系的,只是想把这个修改了,看着http://tempuri.org这个就感觉不舒服得)
具体看下面的WSDL:
<?xml version="1.0" encoding="utf-8" ?> - <wsdl:definitions name="GA" targetNamespace="http://error.zdit.cn" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:tns="http://error.zdit.cn" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:i0="http://tempuri.org/" xmlns:wsap="http://schemas.xmlsoap.org/ws/2004/08/addressing/policy" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msc="http://schemas.microsoft.com/ws/2005/12/wsdl/contract" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:wsa10="http://www.w3.org/2005/08/addressing" xmlns:wsx="http://schemas.xmlsoap.org/ws/2004/09/mex">