【发布时间】:2012-12-28 11:12:50
【问题描述】:
我有第一个项目“MyProject.Core”,我有 EDMX:
回购类:
class MyProjectRepo : IMyProjects
{
public int NumberOfUser()
{
return new context().User.Count();
}
public string HelloWorld()
{
return "Hello World!";
}
}
界面:
public interface IMyProjects
{
int NumberOfUser();
string HelloWorld();
}
工厂:
public static class MyProjectFactory
{
private static IMyProjects _returnedObject;
public static IMyProjects GetObject()
{
lock (typeof(MyProjectFactory))
{
_returnedObject = new MyProjectRepo();
}
return _returnedObject;
}
}
一个测试项目“MyProject.Core.Tests”(测试通过):
[Test]
public void NumberOfUser_Test()
{
var number = MyProjectFactory.GetObject().NumberOfUser();
Assert.AreEqual(1, number);
}
[Test]
public void HelloWorld_Test()
{
var hello = MyProjectFactory.GetObject().HelloWorld();
Assert.AreEqual("Hello World!", hello);
}
我创建了一个“云”项目和一个 WCFServiceWebRole。
在 WCFServiceWebRole 中,我有这个:
public class Service1 : IService1
{
public int NumberOfUser()
{
return MyProjectFactory.GetObject().NumberOfUser();
}
public string Hello()
{
return MyProjectFactory.GetObject().HelloWorld();
}
}
[ServiceContract]
public interface IService1
{
[OperationContract]
int NumberOfUser(string login, string password);
[OperationContract]
string Hello();
}
一个测试 WCF 的项目,方法“Hello”返回正确的值。 这是我遇到问题的另一种方法。在 app.config 中,我有这个 :
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_IService1" />
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://myproject.azurewebsites.net/Service1.svc"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IService1"
contract="myprojectServiceAzure.IService1" name="BasicHttpBinding_IService1" />
</client>
错误:
System.TimeoutException : 请求通道在 00:00:59.7138476 之后等待回复时超时。增加通过的超时值 调用 Request 或增加 SendTimeout 值 捆绑。 分配给此操作的时间可能是较长超时的一部分。 ----> System.TimeoutException:对“http://MyProject.azurewebsites.net/Service1.svc”的 HTTP 请求已超过 分配的超时时间为 00:00:59.9270000。分配给这个的时间 操作可能是一个 更长的超时时间。 ----> System.Net.WebException : 操作已超时 MyProject.Azure.Tests\Service References\MyProjectServiceAzure\Reference.cs(487, 0) : MyProject.Azure.Tests.PointageServiceAzure.Service1Client.MyMethod(字符串 登录名,字符串密码) MyProject.Azure.Tests\AzureTests.cs(18, 0) : MyProject.Azure.Tests.AzureTests.Test()
【问题讨论】:
标签: c# .net wcf unit-testing azure