svc服务执行两次

时间:2018-06-21 07:59:24

标签: .net svc

我已经用C#编写了SVC服务,效果很好。

该解决方案由3个项目组成:

  1. 类库;
  2. SVC项目;
  3. 单元测试。

在服务中,我知道有一个问题:属性是DateTime,但是数据库中的数据为null。这将是可以为空的DateTime。

public class DocumentResult
{
    public DocumentResult()
    {
    }

    public FooViewModel { get; set; }
}

public class FooViewModel{
    public string CompanyCode { get; set; }
    public DateTime RegistrationDate { get; set; }
}

界面 IDocuments

[ServiceContract]
[DataContractFormatAttribute]
public interface IDocuments
{
        [OperationContract]
        [WebGet(UriTemplate = "/{companyCode}/{documentId}/docdetail", ResponseFormat = WebMessageFormat.Json)]
        DocumentResult GetDocument(string companyCode, string documentId);
}

服务 Document.svc.cs

public class Documents : IDocuments
{
    public DocumentResult GetDocument(string companyCode, string documentId)
    {
        // breakpoint here
        ...
    }
}

测试方法

[TestMethod]
public void TestGetDocument()
{
     HttpWebRequest webrequest = (HttpWebRequest)WebRequest.Create(String.Format("{0}/Documents/{1}/{2}/docdetail", ConfigSettings.WSBaseUrl, Uri.EscapeDataString("FOO"), Uri.EscapeDataString("8")));
     webrequest.ContentType = "application/json";
     using (WebResponse response = webrequest.GetResponse())
     {
         ...
     }
}

我打开Visual Studio和解决方案,右键单击项目,在新实例中调试。我在服务调用的第一行(接口的实现)中放置了一个断点

我打开Visual Studio的另一个实例,并使用相同的解决方案,运行测试。 调试效果很好。

如果我使用具有增强的DateTime列的数据,则可以很好地工作,但是当我使用具有空的DateTime列的数据时,断点将被击中两次。

感谢您的帮助。

0 个答案:

没有答案