小编Ach*_*khi的帖子

升级到.NET 4.5后,MSBuild部署失败

我们最近将VS 2010和.NET 4应用程序升级到VS 2012和.NET 4.5.我们有一个构建脚本来在测试服务器上部署应用程序.我们有两个盒子 - 一个是带有VS 2012的Windows 8(全新安装),另一个是带有VS 2010和VS 2012(新安装)的Windows 7.

从Windows 8运行构建脚本时,框构建脚本运行良好,并将应用程序部署到测试服务器.但是当从Windows 7框中部署应用程序时,我收到以下错误:

"C:\ Achinth\Build\Work\build\qa1sb.proj"(DeployAll target)(1) - >"C:\ Achinth\Build\Work\App\App.csproj"(ResolveReferences; MsDeployPublish target)(2) - >(MSDeployPublish目标) - > C:\ Program Files(x86)\ MSBuild\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets(3847,5):错误:Web部署任务失败.( (8/19/2012 6:23:41 PM)在远程计算机上处​​理请求时发生错误.)[C:\ Achinth\Build\Work\App\App.csproj] C:\ Program Files(x86 )\ MSBuild\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets(3847,5):错误:\ r [C:\ Achinth\Build\Work\App\App.csproj] C:\程序文件(x86)\ MSBuild\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets(3847,5):错误:(8/19/2012 6:23:41 PM)发生错误时请求已在远程计算机上处​​理.\ r [C:\ Achinth\Build\Work\App\App.csproj] C:\ Program Files(x86)\ MSBuild\Microsoft\VisualStudio\v10.0\Web\Microsoft. Web.Publishing.targets(3847,5):错误:应用程序池t 您尝试使用的帽子将'managedRuntimeVersion'属性设置为'v4.0'.此应用程序需要'v4.5'.[C:\ Achinth \建立\工作\软件\ App.csproj]

看看错误,看起来MSBuild正在使用VS 2010目标而不是VS 2012,这导致了错误.由于Windows 8机箱没有VS 2010,因此它正确使用VS 2012目标.

有人可以提供有关如何让MSBuild选择正确版本的指示吗?

msbuild msbuild-4.0 .net-4.5

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

EF Code First - 如何设置身份种子?

我有一个实体类

public class Employee
{
    public long Id { get; set; }
    public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我已将Id字段设置为具有自动编号生成的主键

modelBuilder.Entity<Employee>().HasKey(e => e.Id);
modelBuilder.Entity<Employee>().Property(e => e.Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
Run Code Online (Sandbox Code Playgroud)

但我希望Identity从10000而不是从1开始播种,这是默认值.如何在EF中指定?

.net c# ef-code-first entity-framework-4.1

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

从资源文件中获取DisplayName

我在App_GlobalResources文件夹中有特定于文化的资源文件.现在我需要从此资源文件中读取DisplayName属性的值.我在用:

[Display(Name = "MerchantName", ResourceType = typeof(Resource))]
public string Merchant { get; set; }
Run Code Online (Sandbox Code Playgroud)

但我收到以下错误:

无法检索属性"名称",因为本地化失败.类型"Resources.Resource"不是公共的,或者不包含名为"MerchantName"的公共静态字符串属性.

我该如何解决这个问题?

.net c# asp.net-mvc-3

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

生成随机唯一代码

我需要生成一个九位数字代码(最好是随机的),它对于给定的一天是唯一的(同一天不能再生成相同的数字).我正在考虑使用HHMMSSmmm(小时,分钟,秒和毫秒)来生成唯一代码但不是真正随机的.这个代码生成方法可以同时通过多种方法访问,因此我必须对该方法进行锁定.但这是否会确保数字是唯一的,因为数字生成可能需要不到一毫秒而两个线程可以获得相同的数字?

有没有更好的方法来生成随机唯一数字代码,这在特定的一天是唯一的?位数可以是6到9位数.

编辑:要生成的随机数的数量取决于事务的数量.最初数量可能较低,但在一段时间内它可能变得非常高(每秒多次交易).因此,我不想将该数字与使用的列表进行比较,因为这可能存在性能问题.

需要随机性,因为该号码将由用户在电话上输入.此号码是将在线交易与电话交易相关联的唯一方式,因此我不希望用户错误地输入不同的号码.

随机数生成需要在ASP.NET MVC应用程序中进行.

.net c# random algorithm

8
推荐指数
1
解决办法
6392
查看次数

即使在使用中也使用MSBuild删除数据库

我在MSBuild文件中使用以下命令来删除数据库

sqlcmd -E -S <ServerName> -Q "DROP DATABASE <DBName>"
Run Code Online (Sandbox Code Playgroud)

但有时我会得到错误

无法删除数据库,因为它当前正在使用中.

我应该使用什么命令,以便即使数据库被使用也会被丢弃?

sql-server msbuild sqlcmd

8
推荐指数
2
解决办法
4930
查看次数

SignalR集线器可扩展性问题

我们有一个名为StatusUpdateHub的SignalR集线器.此集线器由名为HubClient的.NET客户端更新.对于不同的交易,该客户端(在生产中)被多个用户每秒调用大约1000次.这是客户端代码:

public static class HubClient
{
    private static readonly string statusUpdateUrl = ConfigurationManager.AppSettings["StatusUpdateUrl"];
    private static readonly HubConnection connection = new HubConnection(statusUpdateUrl);
    private static readonly IHubProxy hub = connection.CreateProxy("StatusUpdateHub");

    internal static void UpdateBrowser(long transactionId)
    {
        connection.Start().ContinueWith(task => hub.Invoke("UpdateTransactionStatus", transactionId)).ContinueWith(task =>
        {
            if (task.IsFaulted && task.Exception != null)
            {
                // log error
            }
        });
    }
}
Run Code Online (Sandbox Code Playgroud)

当使用100个并发用户调用此代码时它工作正常但是当我们将并发用户数增加到250时,我们看到以下错误:

UpdateBrowser中出现意外错误:System.InvalidOperationException:尚未建立连接.位于SignalR.Client.Hubs的SignalR.Client.Hubs.HubProxy.Invoke [T](String方法,Object [] args)上的SignalR.Client.Connection.SignalR.Client.IConnection.Send [T](字符串数据).位于C:\ Build\Work\Application\Services\HubClient.cs 中的Application.Services.HubClient.<> c_ DisplayClass2.b _0(任务task1)中的HubProxy.Invoke(String方法,Object [] args):
系统中的第20行
System.Threading.Tasks.Task.Execute()中的.Threading.Tasks.Task`1.InvokeFuture(Object futureAsObj )

让我们知道如何使代码更具可扩展性?

.net signalr signalr-hub

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

堆栈和堆查看器

是否有一个免费的.NET堆栈和堆查看器,显示在堆栈和堆上分配的类型.我需要这个进行我将要进行的训练.

.net heap clr stack

4
推荐指数
1
解决办法
1170
查看次数

EF 4.3.1迁移播种未按预期工作

我正在使用EF 4.3.1迁移,我有Configuration类,其中我有以下代码:

internal sealed class Configuration : DbMigrationsConfiguration<DbContext>
{
    public Configuration()
    {
        AutomaticMigrationsEnabled = false;
    }

    protected override void Seed(PayByPhoneDbContext context)
    {
        context.Roles.AddOrUpdate(r => r.Name, new Role { Name = "A" }, new Role { Name = "B" });
        context.Administrators.AddOrUpdate(a => a.Email, new Administrator { Email = "a@a.com" Name = "A", Role = context.Roles.Local.SingleOrDefault(role => role.Name == "A") });
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,当我不存在数据库时运行migrate命令(MSBuild脚本的一部分)时,将创建表并按预期进行种子设定.但是当我在现有数据库上运行migrate命令而没有任何迁移并且所有数据都已经播种时(当需要更新而不是插入时),我在运行migrate命令时出错:

没有待定的显式迁移.

运行种子方法.

System.Data.Entity.Infrastructure.DbUpdateException:更新条目时发生错误.有关详细信息,请参阅内部异常 ---> System.Data.UpdateException:更新条目时发生错误.有关详细信息,请参阅内部异常 ---> System.Data.SqlClient.SqlException:UPDATE语句与FOREIGN KEY约束"FK_Administrators_Roles_RoleId"冲突.冲突发生在数据库"xxxDB",表"dbo.Roles",列"Id"中.

该语句已终止.

堆栈跟踪:

at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
   at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, …
Run Code Online (Sandbox Code Playgroud)

ef-migrations entity-framework-4.3

4
推荐指数
1
解决办法
2937
查看次数

Java/.NET中的RSA加密和.NET中的解密

我的应用程序有Java和.NET客户端,我的应用程序是.NET.我的客户将发送一个使用RSA公钥加密的XML文件,我需要使用.NET解密它

对于字符串说"Achinth Anand Gurkhi",Java RSA加密方法生成以下加密字符串:

e8s2Ap3R1AwoaKB7OPCwkf0vhAVGaQisdoq2Yo0BvwcQ7v3oVtMOVc5wsnIyNVOSZV543imwIiBer0HSXRe8PoBD4jj0tTxtLA+bdoR40oQJD2UmZ4OpAH3g92wLXYd4bVvjllcCPPc0tSr/nzEKeZHcnhf6cGpuwfKyFNbXW2vtlEfmRd+LGqlixPRlx1OnsSMNNw+u/5IBs8MauY4Uwq1Lovlgd9f/8WTOvq9ityr84vGLMRGs4wpC7+fFNk8jGuNZgoCDLZw2RqrUd8FBFvN2wCRZXnS7Wg4QjiBdmnq0OsAwK9OFwqnil7DNnDnlytlecR5oYkDhO2fC4FzFiA==
Run Code Online (Sandbox Code Playgroud)

对于相同的字符串,.NET RSA加密方法使用Java程序使用的相同公钥生成以下加密字符串:

iJO4hwhXGX27jzK87X9gxzzbKpgf7FKhe6UcY7eoiCpLskOatgCMZTm0aTDuwRZGJGbZCIZt+JI9X8LxwOLmIbv5LGyDq+a8jkrPu+pDRvg2uRuKeQj2yBRcp36X+xFf61ux24NaX2RTCY9YfJcUis9NjEkL0eQ3gC79xO0vuBjaUA2oYOt0Mlr7DmKE+b0lz25J/WJuSW83g2oZOlvJ4RnsrFChu0vHnkHCQo9JVjhMc+Onj7+lbI1CDgGq4XigZrHt+j564y3sc3z0oQYfdZkF3yUZrzd3sJjd9KmryHf52eVb9/qgL2/Za1jUwTzKIOvtG/bQpR2ka7Qu1ZqbxQ==
Run Code Online (Sandbox Code Playgroud)

但是我使用匹配私钥的.NET解密方法能够将两者解密回相同的字符串"Achinth Anand Gurkhi".不同的加密字符串如何返回相同的值?

.net c# java encryption rsa

3
推荐指数
1
解决办法
1604
查看次数