我检测到从 Powershell 脚本调用 WCF 服务的奇怪行为。使用 Powershell 2.0 中的命令“New-WebServiceProxy”让您能够从 PS 脚本向 Web 服务发送请求。但是我在服务端遇到了 System.DateTime 对象的一些问题,服务器端的值始终是DateTime.Min。
所以我创建了一个小型测试服务脚本,我可以重现这个错误。我使用了 VS2010 中的“标准”WCF 项目,并使用 DateTime 属性扩展了“DataContract”类:
[DataContract]
public class CompositeType
{
bool boolValue = true;
string stringValue = "Hello ";
[DataMember]
public bool BoolValue
{
get { return boolValue; }
set { boolValue = value; }
}
[DataMember]
public string StringValue
{
get { return stringValue; }
set { stringValue = value; }
}
[DataMember]
public DateTime Datum { get; set; }
}
调用服务的 Powershell 脚本:
cls
$serv = New-WebServiceProxy -uri 'http://localhost:50176/TestService.svc?wsdl' - Namespace wt
$data = [wt.CompositeType](New-Object wt.CompositeType)
$data.StringValue = "abcd"
$data.BoolValue = $true
$data.Datum = Get-Date
$serv.GetDataUsingDataContract($data)
如果需要,我可以向您发送压缩项目的保管箱链接。
问候乌韦