我在部署到 Azure 应用服务的 Web 应用程序上收到 TCP/IP 端口耗尽错误。该问题与占用端口的 RavenDB 连接会话有关。我想我有一个修复程序并且应该很好,但我觉得自己被超越了,因为我真的无法在部署的环境中做很多调试。
在调试问题时,我尝试访问 netstat,但收到访问被拒绝消息,似乎无法绕过它。有什么想法吗?
切线:Azure webapp 中的端口是如何分配的?提出的选项(如https://msdn.microsoft.com/en-us/library/aa560610(v=bts.20).aspx 中所述)有减少套接字连接超时值或动态增加端口上限分配给客户端 TCP/IP 套接字连接。但是,我认为这在 Azure Web 应用程序中是不可能的。
我目前正在考虑将Ninject纳入我的单元测试中.通过与早期问题相关的一些非常聪明的帖子(什么是Ninject以及何时使用它?,http://martinfowler.com/articles/injection.html); 我想我得到了一些核心概念,但是如果它的应用程序我正在努力.
大多数情况下,当IOC包含器出现时,它与将它们合并到单元测试中有关.但是,从实际的角度来看,在我的单元测试中使用像Ninject这样的框架是否有意义,如果我还没有将它合并到我的实际代码库中呢?
举例说明下面的例子(使用C#从James Bender的专业测试驱动开发中取消:使用TDD开发真实世界的应用程序)
[TestFixture]
public class PersonServiceTests
{
[Test]
public void ShouldBeAbleToCallPersonServiceAndGetPerson()
{
var expected = new Person {Id = 1, FirstName = “John”, LastName = “Doe”};
var kernel = new StandardKernel(new CoreModule());
var personService = kernel.Get < PersonService > ();
var actual = personService.GetPerson(expected.Id);
Assert.AreEqual(expected.Id, actual.Id);
Assert.AreEqual(expected.FirstName, actual.FirstName);
Assert.AreEqual(expected.LastName, actual.LastName);
}
}
Run Code Online (Sandbox Code Playgroud)
如何使用Ninject编写我的测试改善我的生活(或任何继承我的代码的可怜的开发人员),而不是仅仅编写我的测试:
[TestFixture]
public class PersonServiceTests
{
[Test]
public void ShouldBeAbleToCallPersonServiceAndGetPerson()
{
var expected = new Person {Id = 1, FirstName = …Run Code Online (Sandbox Code Playgroud) 出于好奇,为什么以下测试失败?Math.Round,不是吗?
[Test]
public void MathRound()
{
Assert.AreEqual(7.13, Math.Round(7.125,2));
}
Run Code Online (Sandbox Code Playgroud)
