小编Dan*_*n C的帖子

无法在Web服务器上启动调试.无法启动ASP.NET调试VS 2010,II7,Win 7 x64

我在Windows 7 x64上运行Visual Studio 2010(作为管理员),IIS 7.我能够在IIS 7中运行ASP.NET网站而无需调试,但是当我按F5进行调试时,我得到:

无法在Web服务器上启动调试.无法启动ASP.NET调试.无需调试即可通过启动项目获得更多信息.

不幸的是,帮助链接对我没有多大帮助,导致了一大堆事情.

我检查了以下内容:

  • 安全要求 - 我不记得以前必须做任何特别的事情.IIS7中的工作进程是w3wp.exe.它说,如果它作为ASPNET或NETWORK SERVICE运行,我必须具有管理员权限来调试它.我怎么知道我是否需要在这里更改一些东西?

  • 网站属性页>开始选项>调试程序>选中ASP.NET.使用自定义服务器设置为站点的URL(无需调试即可正常工作).

  • 调试已启用web.config.

  • 应用程序正在使用ASP.NET 3.5(我想最终转移到4.0,但我有一些迁移要处理).

  • 应用程序池:对.NET AppPool进行分类(也尝试过DefaultAppPool).

我接下来可以查看的任何想法?

当然,安装IIS,VS,创建网站并开始测试它应该不难吗?

提前致谢.

.net asp.net iis-7 visual-studio-2010 visual-studio-debugging

92
推荐指数
12
解决办法
19万
查看次数

如何将TransactionScope与MySql和Entity Framework一起使用?(获得多个同时连接...目前不支持错误)

我有一个新的.NET 4.0控制台应用程序,它使用:

  • MySql 6.4.4.0
  • 实体框架4.2(代码优先)
  • Visual Studio 2010

到目前为止这个工作.我可以很好地添加和读取数据库.

现在,当我添加TransactionScope时,如下例所示:

public static void TestInsert()
{
    using (TransactionScope scope = new TransactionScope())
    {
        using (var context = new MyDbContext())
        {
            // Create a test user
            DateTime dt = DateTime.Now;
            var user1 = new User { UserID = 1, UserName = "test" };
            context.Users.Add(user1);  <-- exception occurs here

            context.SaveChanges();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

当我运行它时,我收到错误:

目前不支持在同一事务中具有不同连接字符串的多个同时连接或连接.

似乎即使最新版本的MySql也不喜欢使用EntityFramework的TransactionScope.

我希望能够使用事务,尤其是在测试项目中,以便我可以回滚任何更改.

知道如何解决这个问题或解决它吗?

完整的错误信息

System.Data.DataException was unhandled
  Message=An exception occurred while initializing the database. See the InnerException for …
Run Code Online (Sandbox Code Playgroud)

.net mysql transactions entity-framework-4

12
推荐指数
1
解决办法
3256
查看次数

什么是订单/发票信息的建议数据库架构?

我必须对电子商务系统进行一些更改以添加一些额外的信息,并希望借此机会进行一些改进并使其更加灵活.当客户下订单时,我们必须在订购的每件商品中存储几项信息; 例如,产品价格,运费,收税,以及所做的任何调整.

我正在辩论是否应该离散地存储这些字段,例如(简化示例):

ORDER_LINE_ITEM
    OrderLineItemID
    ProductID
    Qty
    Price
    Shipping
    Handling      
    SalesTax
    Adjustment
Run Code Online (Sandbox Code Playgroud)

例如,我可以计算客户支付的总价:

SELECT Qty*(Price+Shipping+Handling+SalesTax) As TotalCollected FROM ORDER_LINE_ITEM
Run Code Online (Sandbox Code Playgroud)

或者如果我应该使用更间接的结构:

ORDER_LINE_ITEM
    OrderLineItemID
    ProductID
    Qty

ORDER_LINE_ITEM_ENTRIES
    OrderLineItemEntryID
    OrderLineItemID
    EntryType
    Value
Run Code Online (Sandbox Code Playgroud)

例如:

1 | 1 | Price      | $10
2 | 1 | Shipping   | $5
3 | 1 | Handling   | $1
4 | 1 | SalesTax   | $1
5 | 1 | Adjustment | -$3.50
Run Code Online (Sandbox Code Playgroud)

这样做的好处是我可以在以后存储其他信息而无需更改表模式.但是,检索信息和运行报告会变得更加复杂和缓慢.

是否有将此信息存储在订单/发票数据库中的最佳做法?

提前致谢,

database-design

12
推荐指数
2
解决办法
2万
查看次数

为什么Socket.BeginReceive会丢失来自UDP的数据包?

The following code waits for data over UDP. I have a test function that sends 1000 packets (datagrams?) of 500 bytes each. Each time I run the test function, the receiver gets only the first few dozen packets but drops the rest. I looked at the incoming network data using Wireshark and I see all 1000 packets are actually received, but just don't make it to may app's code.

Here is some of the relevant VB.NET 3.5 code:

Private _UdbBuffer …
Run Code Online (Sandbox Code Playgroud)

.net sockets vb.net udp network-programming

7
推荐指数
1
解决办法
6416
查看次数

用于失败单元测试的Visual Studio 2013测试资源管理器StackTrace显示"无可用源"而不是到失败行的链接

我在C#项目中创建了一个简单的单元测试:

[TestMethod]
public void DoSomething()
{
    // Act

    // assert
    Assert.Fail("blah");
}
Run Code Online (Sandbox Code Playgroud)

当我运行它时,测试资源管理器不会超链接到失败的行(Assert)并且不显示行号.相反,如果我将鼠标悬停在该线上,则显示"没有可用的来源".

Test Name:  DoSomething
Test FullName:  BlahBlah.DoSomething
Test Source:c:\Src\BlahBlahTest.cs : line 223
Test Outcome:   Failed
Test Duration:  0:00:04.1933182

Result Message: Assert.Fail failed. blah
Result StackTrace:  at BlahBlahTest.DoSomething()
Run Code Online (Sandbox Code Playgroud)

我删除了.suo文件,测试设置为完全调试.我也安装了Resharper,它的测试运行器也没有链接到故障线路.

有人知道如何解决这个问题吗?

c# unit-testing visual-studio-2013

7
推荐指数
0
解决办法
471
查看次数

在数据库中保留小计字段是一个坏主意

我有一个MySQL表,代表一个订单列表和一个相关的子表,代表与每个订单关联的货件(一些订单有多个货件,但大多数只有一个).

每批货物都有许多费用,例如:

  • ItemCost
  • 运输费
  • HandlingCost
  • TaxCost

应用程序中有许多地方需要获取订单的综合信息,例如:

  • TotalItemCost
  • TotalShippingCost
  • TotalHandlingCost
  • TotalTaxCost
  • 总成本
  • 总支付
  • TotalProfit

所有这些字段都取决于相关货件表中的汇总值.此信息用于其他查询,报告,屏幕等,其中一些必须快速为用户返回数万条记录的结果.

在我看来,有几个基本的方法可以解决这个问题:

  1. 使用子查询可在需要时从货件表中计算这些项目.对于需要全部或部分此类信息的所有查询,这会使事情变得复杂.它也很慢.

  2. 创建一个将子查询公开为简单字段的视图.这使得需要它们的报告变得简单.

  3. 在订单表中添加这些字段.这些将为我提供我正在寻找的性能,代价是在我对货件记录进行任何更改时必须复制数据并进行计算.

另一件事,我正在使用一个业务层来公开函数来获取这些数据(例如GetOrders(过滤器))并且我不需要每次都使用小计(或者某些时候只需要其中的一些),所以生成一个每次(即使从一个视图)子查询可能是一个坏主意.

是否有任何人可以指出我帮助我决定最佳设计的最佳实践?

顺便说一下,我最终做了#3主要是出于性能和查询简单性的原因.

更新:

很快就得到了很多很棒的反馈,谢谢大家.为了给出更多背景信息,显示信息的地方之一是在管理控制台上,我有一个可能很长的订单列表,需要为每个订单显示TotalCost,TotalPaid和TotalProfit.

mysql database-design denormalization

6
推荐指数
1
解决办法
720
查看次数

如何通过UDP发送实时数据?

我必须尽可能快速,实时地通过UDP发送一系列视频帧,当我掌握了基础知识时,我遇到了各种各样的困难.我的一些目标:

  1. 数据通常通过拨号发送(因此UDP而不是TCP),但也需要支持快速以太网.

  2. 偶尔丢帧(因此UDP而不是TCP)是可以的.

  3. 需要低延迟.远程接收的帧应该是最近发送的帧(在缓冲区中等待的帧数不超过几帧).

  4. 我需要能够检测有效带宽,以便我可以或多或少地压缩帧以保持帧速率.

我已成功实现了大部分内容:

  1. 我将帧数据分解为一个或多个大约500字节的数据报,每个数据报都有一个序列号和其他信息.接收器重新组装整个帧并检测是否缺少任何数据报.

  2. 如果接收器检测到超过一定百分比的丢帧(例如,过去10帧中的50%),我向发送方发送TCP消息以减慢50%.发送者比每个后续帧慢慢增加5%的速度.

  3. 使用System.Net.Sockets.UdpClient发送和接收数据.

  4. 我有一个单独的TCP通道用于控制消息回发送者.

我现在面临的主要困难是检测有效带宽并处理延迟,特别是通过拨号(最大~4,000字节/秒).例如,如果我尝试使用TcpClient.Send()发送100,000字节/秒,则它们似乎到达(没有丢弃的数据报),但是在最后一个数据报到达时具有大的延迟.我认为TcpClient.Send()函数是阻塞的,直到缓冲区能够发送,这会混淆我当前的算法.

任何人都可以指出我的任何信息来源如何:

  1. 通过UDP检测实际带宽.

  2. 一种更好的动态调整带宽以适应可用管道的算法.

  3. 以所需带宽平滑地发送数据.

  4. 一种检测并将延迟降至最低的方法.

我在上周一直在转动轮子,每次解决一个问题时,另一个问题似乎是头部.

.net vb.net udp udpclient

5
推荐指数
1
解决办法
1463
查看次数

在单元测试中为对象断言未经验证的添加属性

我有 MSTest (VS 2012) 单元测试,我想在其中断言对象的各种属性具有我想要的值。有很多方法可以做到这一点。然而,我主要担心的是,如果将新属性添加到对象中,很容易忽略更新单元测试以确保它具有我们期望的值。

我能想到的一件事是使用反射来枚举对象的公共属性,然后跟踪单元测试断言了哪些属性,最后,如果没有检查任何属性,则断言。

有没有人写过类似的东西?

有什么更好的想法吗?

更新: 我应该指出,所讨论的对象类似于数据传输对象,其中还有其他类/方法会导致该对象中的数据被更新。很容易忽略更新这些类/方法的测试以确保我们考虑了对象的所有属性。我想要一些比右键单击对象、查找引用和查看代码更强大的东西(即不能被遗忘或忽略)。

例如:

public class Person {
  public string FirstName;
}

public Person GetPerson() {}

[TestMethod]
public void GetPerson_ReturnsFilledInPerson()
{
    var actual = target.GetPerson();
    Assert.IsNotNull(actual.FirstName);
    // If somebody later adds LastName to Person, 
    // we want this unit test to fail until the LastName is checked too.
}
Run Code Online (Sandbox Code Playgroud)

谢谢,

c# unit-testing mstest

5
推荐指数
1
解决办法
1567
查看次数