小编Chr*_*ris的帖子

TransactionScope过早完成

我有一个在TransactionScope中运行的代码块,在这段代码中,我多次调用DB.选择,更新,创建和删除整个色域.当我执行删除操作时,我使用SqlCommand的扩展方法执行它,如果查询死锁,它将自动重新提交查询,因为此查询可能会遇到死锁.

我相信当遇到死锁并且函数尝试重新提交查询时会发生此问题.这是我收到的错误:

与当前连接关联的事务已完成但尚未处理.必须先处理事务,然后才能使用连接执行SQL语句.

这是执行查询的简单代码(下面的所有代码都在使用TransactionScope执行):

using (sqlCommand.Connection = new SqlConnection(ConnectionStrings.App))
{
    sqlCommand.Connection.Open();
    sqlCommand.ExecuteNonQueryWithDeadlockHandling();
}
Run Code Online (Sandbox Code Playgroud)

以下是重新提交死锁查询的扩展方法:

public static class SqlCommandExtender
{
    private const int DEADLOCK_ERROR = 1205;
    private const int MAXIMUM_DEADLOCK_RETRIES = 5;
    private const int SLEEP_INCREMENT = 100;

    public static void ExecuteNonQueryWithDeadlockHandling(this SqlCommand sqlCommand)
    {
        int count = 0;
        SqlException deadlockException = null;

        do
        {
            if (count > 0) Thread.Sleep(count * SLEEP_INCREMENT);
            deadlockException = ExecuteNonQuery(sqlCommand);
            count++;
        }
        while (deadlockException != null && count < MAXIMUM_DEADLOCK_RETRIES);

        if (deadlockException != null) throw deadlockException; …
Run Code Online (Sandbox Code Playgroud)

c# sql-server ado.net deadlock transactionscope

64
推荐指数
6
解决办法
5万
查看次数

XSLT使用命名空间转换XML

我正在尝试使用XSLT将一些XML转换为HTML.

问题:

我无法让它发挥作用.有人能告诉我我做错了什么吗?

XML:

<ArrayOfBrokerage xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.test.com/">
    <Brokerage>
        <BrokerageID>91</BrokerageID>
        <LastYodleeUpdate>0001-01-01T00:00:00</LastYodleeUpdate>
        <Name>E*TRADE</Name>
        <Validation i:nil="true" />
        <Username>PersonalTradingTesting</Username>
    </Brokerage>
</ArrayOfBrokerage>
Run Code Online (Sandbox Code Playgroud)

XSLT:

<xsl:stylesheet version="1.0" xmlns="http://www.test.com/" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xslFormatting="urn:xslFormatting">

    <xsl:output method="html" indent="no"/>

    <xsl:template match="/ArrayOfBrokerage">
        <xsl:for-each select="Brokerage">
            Test
       </xsl:for-each>
    </xsl:template>

</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)

xml xslt namespaces transform datacontractserializer

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

在发布中部署PDB文件

我有我的CI服务器设置来构建和部署我的所有环境,包括我的生产环境.据我所知,我的所有项目文件和CI设置的设置在我的Staging环境构建和我的Production环境构建之间是相同的.但是,当我部署到生产环境时,没有PDB文件与DLL文件一起存在,就像在暂存中一样.以下是部署每个应用程序的脚本:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe %location% ^
    /p:Configuration=%configName% ^
    /p:DeployOnBuild=True ^
    /p:DeployTarget=MSDeployPublish ^
    /p:AllowUntrustedCertificate=True ^
    /p:MSDeployPublishMethod=WMSvc ^
    /p:CreatePackageOnPublish=True ^
    /p:MsDeployServiceUrl=https://%serverName%:8172/MsDeploy.axd ^
    /p:DeployIisAppPath=%siteName% ^
    /p:UserName=%username% ^
    /p:Password=%password%
Run Code Online (Sandbox Code Playgroud)

因此,似乎在配置=释放PDB文件时,尽管它们是在构建服务器上生成的.有任何想法吗?

.net deployment msbuild continuous-integration

24
推荐指数
2
解决办法
7386
查看次数

LINQ Lambda - 在一个列表中查找另一个列表中不存在的所有ID

我有两个对象集合(List list1和List list2).每个被称为"ID"的属性.我知道list2总是会有比list1更多的项目,我只需要一个简单的方法来获取list2中存在的所有项目的集合,但不使用LINQ lambda表达式获取list1.

linq lambda

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

MSBuild文件运行代码分析而不重叠

我正在创建一个MSBuild文件,将我需要在构建服务器上执行的操作的一些任务合并为一步.此过程的一部分需要运行代码分析.我的问题是我已经为多个顶级项目运行代码分析,但它们对其他项目(如我们的实用程序库)具有相同的依赖性.这意味着每次代码分析都会复制Utility Library的代码分析运行.这是我的MSBuild文件:

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Build" ToolsVersion="4.0">
    <PropertyGroup>
        <Configuration Condition=" '$(Configuration)' == '' ">Dev</Configuration>
        <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
        <RunCodeAnalysis>true</RunCodeAnalysis>
        <CodeAnalysisTargets>C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\CodeAnalysis\Microsoft.CodeAnalysis.targets</CodeAnalysisTargets>
        <CodeAnalysisTreatWarningsAsErrors>true</CodeAnalysisTreatWarningsAsErrors>
        <StyleCopTreatErrorsAsWarnings>false</StyleCopTreatErrorsAsWarnings>
        <DefineConstants>TRACE;DEBUG;CODE_ANALYSIS</DefineConstants>
        <BuildInParallel>true</BuildInParallel>
        <WebProjectTargets>Clean;Build;Package</WebProjectTargets>
        <OtherProjectTargets>Clean;Build</OtherProjectTargets>
        <GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
    </PropertyGroup>

    <Target Name="Build">
        <!-- Web Projects -->
        <MSBuild
            Projects="$(MSBuildProjectDirectory)\Source\WebProjects\WebApp1\WebApp1.csproj"
            Properties="
                Configuration=$(Configuration);
                PackageLocation=$(MSBuildProjectDirectory)\Packages\WebApp1.zip;
                RunCodeAnalysis=$(RunCodeAnalysis);
                CodeAnalysisTargets=$(CodeAnalysisTargets);
                CodeAnalysisTreatWarningsAsErrors=$(CodeAnalysisTreatWarningsAsErrors);
                StyleCopTreatErrorsAsWarnings=$(StyleCopTreatErrorsAsWarnings);
                DefineConstants=$(DefineConstants);
                BuildInParallel=$(BuildInParallel);
                GenerateSerializationAssemblies=$(GenerateSerializationAssemblies);
                "
            Targets="$(WebProjectTargets)" />
        <MSBuild
            Projects="$(MSBuildProjectDirectory)\Source\WebProjects\WebApp2\WebApp2.csproj"
            Properties="
                Configuration=$(Configuration);
                PackageLocation=$(MSBuildProjectDirectory)\Packages\WebApp2.zip;
                RunCodeAnalysis=$(RunCodeAnalysis);
                CodeAnalysisTargets=$(CodeAnalysisTargets);
                CodeAnalysisTreatWarningsAsErrors=$(CodeAnalysisTreatWarningsAsErrors);
                StyleCopTreatErrorsAsWarnings=$(StyleCopTreatErrorsAsWarnings);
                DefineConstants=$(DefineConstants);
                BuildInParallel=$(BuildInParallel);
                GenerateSerializationAssemblies=$(GenerateSerializationAssemblies);
                "
            Targets="$(WebProjectTargets)" />
        <MSBuild
            Projects="$(MSBuildProjectDirectory)\Source\WebProjects\Administrator\Administrator.csproj"
            Properties="
                Configuration=$(Configuration);
                PackageLocation=$(MSBuildProjectDirectory)\Packages\Administrator.zip;
                RunCodeAnalysis=$(RunCodeAnalysis);
                CodeAnalysisTargets=$(CodeAnalysisTargets);
                CodeAnalysisTreatWarningsAsErrors=$(CodeAnalysisTreatWarningsAsErrors);
                StyleCopTreatErrorsAsWarnings=$(StyleCopTreatErrorsAsWarnings);
                DefineConstants=$(DefineConstants);
                BuildInParallel=$(BuildInParallel);
                GenerateSerializationAssemblies=$(GenerateSerializationAssemblies);
                " …
Run Code Online (Sandbox Code Playgroud)

.net msbuild continuous-integration

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

Visual Studio 2015 with Update 3 .NET 4.6.2 Windows 10 Anniversary Edition

我最近将我的Windows 10更新为包含.NET v4.6.2 Framework的周年纪念版.当我尝试在Visual Studio 2015中使用Update 3加载针对v4.6.2框架的项目时,VS告诉我v4.6.2"未安装在此计算机上".当我尝试下载并安装v4.6.2时,安装程​​序告诉我此机器上已安装v4.6.2或更高版本.有谁知道如何解决这个问题?

visual-studio .net-4.6.2

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

SVCUtil或WSDL批处理

我得到了一组170个WSDL文件,我需要将它们转换为C#类文件.有没有办法批处理这个?

c# wsdl svcutil.exe visual-studio

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

具有多个命名空间的DataContractSerializer

我正在使用DataContractSerializer将对象序列化为XML.主要对象是SecurityHolding,命名空间为" http://personaltrading.test.com/ ",包含一个名为Amount的属性,它是一个名为" http://core.test.com "的类.当我将其序列化为XML时,我得到以下内容:

<ArrayOfSecurityHolding xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://personaltrading.test.com/">
  <SecurityHolding>
    <Amount xmlns:d3p1="http://core.test.com/">
        <d3p1:Amount>1.05</d3p1:Amount>
        <d3p1:CurrencyCode>USD</d3p1:CurrencyCode>
    </Amount>
    <BrokerageID>0</BrokerageID>
    <BrokerageName i:nil="true" />
    <RecordID>3681</RecordID>
  </SecurityHolding></ArrayOfSecurityHolding>
Run Code Online (Sandbox Code Playgroud)

反正我可以控制d3p1前缀吗?我做错了什么或者我应该做别的事吗?

c# xml namespaces datacontractserializer

7
推荐指数
2
解决办法
9580
查看次数

SQL Server:以编程方式执行维护计划

有没有办法以编程方式执行(启动)SQL Server维护计划?我们有一个夜间运行的Windows服务,并使用大量数据更新数据库,一旦完成,我们希望在数据库中触发维护计划以开始运行.

sql-server service maintenance-plan

7
推荐指数
2
解决办法
5157
查看次数

FxCop和代码分析规则

我最近开始在Visual Studio中的项目中使用代码分析.我创建了一个自定义规则集,用于包含两个Microsoft定义的规则集的所有项目.我一直在努力将FxCop集成到CI构建过程中,以使未通过所有规则的构建失败.对我来说真正奇怪的是我不能使用我的规则集来定义FxCop扫描代码的规则.我如何使Visual Studio的代码分析规则符合FxCop的规则?

.net teamcity code-analysis fxcop visual-studio

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