2012-03-13 2 views
2

asp.net 웹 서비스 (asmx)의 출력물에있는 각 요소에 xmlns="http://tempuri.org/" 선언을 어떻게 생략 할 수 있습니까?웹 서비스 출력에서 ​​xmlns = "http://tempuri.org/"를 생략하는 방법

<?xml version="1.0" encoding="utf-16"?> 
<ArrayOfData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <DataItem> 
    <Id xmlns="http://tempuri.org/">463d931f-5f14-447d-99cd-289cae2a5b6d</Id> 
    <Created xmlns="http://tempuri.org/">2012-03-13T13:47:13.8626511+01:00</Created> 
    ... 
    </DataItem> 
    ... 

웹 서비스는 다음과 같이 정의된다 :

[EdmEntityTypeAttribute(NamespaceName="DataEntityModel", Name="DataItem")] 
[Serializable()] 
[DataContractAttribute(IsReference=true)] 
public partial class DataItem : EntityObject 
{ 

    [EdmScalarPropertyAttribute(EntityKeyProperty=true, IsNullable=false)] 
    [DataMemberAttribute()] 
    public global::System.Guid Id 
    { 
     ... 
    } 
} 


public class DataItemCollection : Collection<DataItem> 
{ 

} 

내가 [WebService(Namespace = "http://tempuri.org/")]이 속성에서, 결과는 동일 제거 :

[WebService(Namespace = "http://tempuri.org/")] 
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] 
[System.ComponentModel.ToolboxItem(false)]  
public class DataWebService : System.Web.Services.WebService 
{ 

    [WebMethod] 
    public DataCollection GetData() 
    { 
     ... 
    } 
} 

데이터 항목은 EF의 엔티티입니다.

+0

DataItem의 모습은 어떻습니까? –

+0

질문이 업데이트되었습니다. – zosim

답변

2

[WebService(Namespace = "http://tempuri.org/")]을 제거하지 마십시오. 대신 자신의 네임 스페이스를 사용하십시오. 어쩌면 http://webservices.yourcompany.com/datawebservice과 같은 것일 수 있습니다. 엔티티에 명시 적 네임 스페이스를 넣을 수도 있습니다.

그러나 ASMX 서비스 사용을 중단하고 대신 WCF를 사용하는 것이 좋습니다.

+0

네임 스페이스를 제거하지 않았습니다 (단지 시도였습니다). 결과는 네임 스페이스의 유무와 동일합니다. 아마도 네임 스페이스를 제거하면 serializer가 기본 네임 스페이스를 대신 사용합니다. 나는 그것을 필요로하기 때문에 asmx를 사용하고있다. (SSIS와 wcf에서 제대로 작동하지 않는다.) 엔티티의 명시 적 네임 스페이스가 도움이되지 않았습니다. – zosim

+0

'basicHttpBinding'을 사용하여 WCF를 시도해야합니다. 네트워크에서 ASMX와 동일하게 보이지만 ASMX와 같은 기존 기술이 아닌 최신 기술입니다. –

+0

네, 맞습니다. 내 첫 번째 솔루션 이었지만이 시나리오 (SSIS 웹 서비스 작업에서 basichttpbinding을 사용하여 WCF 서비스를 호출)에서 여기서 설명하는 오류로 끝났습니다. http://social.msdn.microsoft.com/Forums/da-DK/adodotnetentityframework/thread/81daac4c-231a-4460-8951-f168adee7d6e. 이 오류는 해결되지 않았으므로 asmx 솔루션으로 이동했습니다. – zosim

관련 문제