我正在尝试使用TransactionScope,但继续获得下面的例外.
如果这很重要,应用程序将在与数据库不同的计算机上运行.我正在使用SQL Server 2005.
已禁用分布式事务管理器(MSDTC)的网络访问.请使用组件服务管理工具在MSDTC的安全配置中启用DTC以进行网络访问.
using (TransactionScope tsTransScope = new TransactionScope())
{
//Do stuff here
tsTransScope.Complete();
}
Run Code Online (Sandbox Code Playgroud)
编辑
我根据反馈做了一些改变.现在我收到这个错误:
"错误HRESULT E_FAIL已从调用COM组件返回."
"与基础交易经理的沟通失败了."
解决方案 我认为接受的答案解决了我遇到的最初问题.第二个错误似乎特定于Entity Framework.我会发布另一个问题.
以下是客户端上的属性:
客户端http://www.portnine.com/data/images/Misc/client.jpg
以下是服务器上的属性:
Server http://www.portnine.com/data/images/Misc/server.jpg
在Team System中,我有一个在分支ServicePack\2.1(从Integration分支)中更改的文件,我不想将它合并到Integration.当我尝试合并所选的变更集时,如何从潜在的变更集列表中删除它?
WPF是否有办法在MouseMove事件上获取鼠标下的元素数组?
请参阅下面的代码.如果我初始化多个实体上下文,那么我只在第二组代码上得到以下异常.如果我注释掉第二组就行了.
{"底层提供商在Open上失败."}
内部:{"与基础事务管理器的通信失败."}
内部:{"错误HRESULT E_FAIL已从调用COM组件返回."}
请注意,这是一个示例应用程序,我知道连续创建2个上下文没有意义.但是,生产代码确实有理由在同一个环境中创建多个上下文TransactionScope,并且无法更改.
编辑
这是我之前尝试设置MS-DTC的问题.它似乎在服务器和客户端上都启用了.我不确定它是否设置正确.另请注意,我尝试这样做的原因之一是TransactionScope使用ADO.NET和Linq 2 Sql 中的现有代码...我希望那些也使用相同的事务.(这可能听起来很疯狂,但如果可能,我需要让它工作).
解
Windows防火墙阻止了与MS-DTC的连接.
using(TransactionScope ts = new System.Transactions.TransactionScope())
{
using (DatabaseEntityModel o = new DatabaseEntityModel())
{
var v = (from s in o.Advertiser select s).First();
v.AcceptableLength = 1;
o.SaveChanges();
}
//-> By commenting out this section, it works
using (DatabaseEntityModel o = new DatabaseEntityModel())
{
//Exception on this next line
var v = (from s1 in o.Advertiser select s1).First(); v.AcceptableLength = …Run Code Online (Sandbox Code Playgroud) 下面的executeTime是第一次30秒,下次执行同一组代码时是25秒.在SQL Profiler中观看时,我立即看到一个登录,然后它就在那里坐了大约30秒.然后,只要运行select语句,应用程序就会完成ToList命令.当我从Management Studio运行生成的查询时,数据库查询只需要大约400毫秒.它返回14行和350列.看起来像将数据库结果转换为实体所花费的时间非常小,不值得注意.
那么在数据库调用之前的30秒内发生了什么?
如果实体框架这么慢,我们就不可能使用它.有什么我做错了或者我可以改变什么来加速这一点吗?
更新: 好吧,如果我使用编译查询,第一次需要30秒,第二次需要1/4秒.有什么办法可以加快第一次通话的速度吗?
using (EntitiesContext context = new EntitiesContext())
{
Stopwatch sw = new Stopwatch();
sw.Start();
var groupQuery = (from g in context.Groups.Include("DealContract")
.Include("DealContract.Contracts")
.Include("DealContract.Contracts.AdvertiserAccountType1")
.Include("DealContract.Contracts.ContractItemDetails")
.Include("DealContract.Contracts.Brands")
.Include("DealContract.Contracts.Agencies")
.Include("DealContract.Contracts.AdvertiserAccountType2")
.Include("DealContract.Contracts.ContractProductLinks.Products")
.Include("DealContract.Contracts.ContractPersonnelLinks")
.Include("DealContract.Contracts.ContractSpotOrderTypes")
.Include("DealContract.Contracts.Advertisers")
where g.GroupKey == 6
select g).OfType<Deal>();
sw.Stop();
var queryTime = sw.Elapsed;
sw.Reset();
sw.Start();
var groups = groupQuery.ToList();
sw.Stop();
var executeTime = sw.Elapsed;
}
Run Code Online (Sandbox Code Playgroud) 使用TFS合并工具,我可以单击左侧和右侧以保持两个更改/冲突.当我添加一个方法而另一个团队成员在同一个地方添加一个方法时我需要保留它们.在WinMerge(文件合并,而不是文件夹)中,似乎我只能用左边覆盖右边.是否可以将WinMerge复制到左侧,并保持正确?
我有一个用PHP加密的字符串,我想在C#中解密.我使用下面的教程进行加密,但是在解密时遇到了问题.谁能发布一个如何做到这一点的例子?
http://www.sanity-free.org/131/triple_des_between_php_and_csharp.html
我目前使用Heroku进行rails托管,它使用Git存储库进行部署.我还有一个托管的Git存储库,我将其用作历史/备份目的的主要源代码控制.我想有一个本地文件夹,其中包含我的应用程序的工作副本,然后能够在需要时将我的更改提交到Heroku存储库或我的托管存储库.
我该怎么做呢?(请注意,我熟悉Team System如何进行源代码控制,对Git来说很新)
我正在尝试为php web开发设置Eclipse.我想做的是从Eclipse中预览一个php网页,但我无法弄清楚如何做到这一点.是否有某种集成的Web服务器允许这样做,或者我是否必须设置IIS/Apache才能执行此操作?如果是这样,我是否必须将我的php文件放在Web服务器路径中,或者Eclipse是否自动将文件部署到本地Web服务器?任何信息或链接将非常感谢.
c# ×4
.net ×3
php ×2
transactions ×2
audio ×1
database ×1
eclipse ×1
eclipse-pdt ×1
element ×1
encryption ×1
git ×1
heroku ×1
merge ×1
tfs ×1
visual-tree ×1
winmerge ×1
wpf ×1