我正在開發服務器應用程序。它是一個在服務器機器上運行的Windows服務。爲了與服務器服務交互,我公開了WCF服務。其他客戶端可以通過使用WCF服務與服務器進行交互。但它限制了用戶只開發基於Windows的系統,我們也決定公開SOAP服務。我處於同樣的發展中。 SOAP服務在IIS上運行並與WCF服務交互,但用戶不知道WCF服務,而只知道SOAP。 WCF服務使用用戶定義的/複雜的數據類型。當我在SOAP項目中使用WCF服務(與服務器交互)時,可以訪問用戶定義的類型(WCF使用的)。我公開了一個方法並試圖訪問結果,但引發了「NetDispatcheFaultException」。有幾個用戶定義的類型,但它是創造問題的類型如下:運行SOAP服務時出現異常
public class ServerConfig
{
private List<License> _licenseConfiguration;
public ServerConfig()
{
_licenseConfiguration = new List<License>();
}
[XmlArray("licenseconfiguration", IsNullable = true)]
[XmlArrayItem("license", typeof(License))]
public List<License> LicenseConfiguration { get { return _licenseConfiguration; } set { _licenseConfiguration = value; } }
public string[] AcquiredLicenses
{
get
{
int index = 0;
string[] licenses = new string[LicenseConfiguration.Count];
foreach (License lic in LicenseConfiguration)
{
licenses[index] = Utils.GetUserFriendlyNameFor(lic.LicenseName);
index++;
}
return licenses;
}
}
}
public class License
{
[XmlAttribute("licensename")]
public LicenseTypes LicenseName { get; set; }
[XmlAttribute("licensecount")]
public int LicenseCount { get; set; }
public License()
{
this.LicenseName = LicenseTypes.None;
this.LicenseCount = 0;
}
public License(LicenseTypes licenseName)
{
this.LicenseName = licenseName;
this.LicenseCount = 0;
}
public FbFLicense(LicenseTypes licenseName, int count)
{
this.LicenseName = licenseName;
this.LicenseCount = count;
}
}
當SOAP服務運行時,我調用下面的方法,這反過來調用WCF方法:
[WebMethod]
public ServerConfig GetServerConfiguration()
{
return base.ServerConfiguration();//.ServerConfiguration();
}
在調用此方法一切順利執行對WCF的一面,但它拋出以下異常SOAP的一面:
爲什麼我t正在發生?建議一些方法來解決這個問題。如果任我從SERVERCONFIG類中刪除
public string[] AcquiredLicenses
財產或者只是改變從「字符串[]」到「列表(字符串)」的返回類型此異常消失。 任何IDea?