2012-02-29 52 views
1

我正在向Peoplesoft WSDL添加服務引用。現有應用程序具有在不同版本的.NET(我認爲是4.0)或svcutil中生成的代理。舊的代理開始是這樣的:爲什麼WCF生成不同的代理?

//------------------------------------------------------------------------------ 
// <auto-generated> 
//  This code was generated by a tool. 
//  Runtime Version:4.0.30319.235 
// 
//  Changes to this file may cause incorrect behavior and will be lost if 
//  the code is regenerated. 
// </auto-generated> 
//------------------------------------------------------------------------------ 

namespace PeopleSoft.CustomerService { 
    using System.Runtime.Serialization; 
    using System; 


    [System.Diagnostics.DebuggerStepThroughAttribute()] 
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] 
    [System.Runtime.Serialization.CollectionDataContractAttribute(Name="CIFaultTypeShape", Namespace="http://xmlns.oracle.com/Enterprise/FSCM/schema/M866879.V1", ItemName="IBResponse")] 
    [System.SerializableAttribute()] 

但新的代理看起來是這樣的:

//------------------------------------------------------------------------------ 
// <auto-generated> 
//  This code was generated by a tool. 
//  Runtime Version:4.0.30319.239 
// 
//  Changes to this file may cause incorrect behavior and will be lost if 
//  the code is regenerated. 
// </auto-generated> 
//------------------------------------------------------------------------------ 

namespace Tasks.Services.ServiceReference1 { 


    /// <remarks/> 
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.233")] 
    [System.SerializableAttribute()] 
    [System.Diagnostics.DebuggerStepThroughAttribute()] 
    [System.ComponentModel.DesignerCategoryAttribute("code")] 
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://xmlns.oracle.com/Enterprise/FSCM/schema/M866879.V1")] 

顯然同一個WSDL是導致不同的代理類。我們擁有依賴於FaultType(CIFaultTypeShape)的舊代碼,該代碼不會生成代理類。

這是一個WCF問題,導致該FaultType被忽略?

+0

是否可以使用svcutil.exe生成第一個代理,使用Visual Studio中的Add Service Reference生成第二個代理?問題可能在於使用不同的序列化程序(Xml vs DataContract)。 – CodeCaster 2012-03-01 01:17:23

+0

謝謝,但我們將其追溯到VS 2010的錯誤。 – 2012-03-01 23:38:09

回答

2

我們遇到了同樣的情況,因爲這博客做(DIFF VS2008代理和VS2010代理之間。):

http://www.fransson.net/blog/cannot-access-faultexception-details/

「與安德烈Liberatore一些溝通,在微軟他從事微軟產品組後,和他們證實我實際上在Visual Studio 2010中發現了一個錯誤。「

這很有意義,因爲代理缺少故障類型。

相關問題