我正在尝试从实体框架中更新复合主键的一个值,并且我收到此错误:"属性'CustomerID'是对象的关键信息的一部分,无法修改."
这是我的代码:
Dim customer As Customer = (From c In db.Customer Where c.CustomerID = "xxx" AndAlso c.SiteKey = siteKey).FirstOrDefault
customer.CustomerID = "fasdfasdf"
db.SaveChanges()
Run Code Online (Sandbox Code Playgroud)
这似乎太简单了.是否真的无法在实体框架内更新主键?我找不到有关该主题的任何文档.谢谢!
我继承了一个非常大的VS2012网站项目(不是Web应用程序),我正在尝试自动化它的部署.项目中有大量的循环引用,所以要使用aspnet_compiler.exe进行预编译我必须打开fixednames.问题是它导致我的四核,16gb ram,ssd开发者机器上的构建需要大约20分钟.之前的开发人员不必处理这个问题,因为他只是将整个源代码复制到生产Web服务器上.
所以在我解决循环引用问题之前,我想至少使用msdeploy自动部署项目.我可以使用visual studio中的发布配置文件,它完全符合我的要求:
我无法弄清楚我的生活是如何让MSBuild.exe做同样的事情!
MSBuild.exe WebProject.vs2012.sln /m /T:Build
/p:Configuration=Release`;DeployOnBuild=true`;PublishProfile=TestDeploy
Run Code Online (Sandbox Code Playgroud)
上面的命令仍然尝试执行aspnet_compiler,这不是我想要的.发布配置文件说不应该预编译...但在日志中我看到它正在执行它.
那么:如何在不预编译的情况下使用msbuild部署网站项目?
asp.net msbuild vs-web-site-project msdeploy visual-studio-2012
我们注意到一些非常小的Web服务调用花费的时间比我们预期的要长.我们做了一些调查并安排了一些定时器,我们将其缩小到创建我们的Entity Framework 6 DbContext的实例.不是查询本身,只是创建上下文.我已经把一些日志记录平均看到创建一个DbContext实例需要多长时间,它似乎是大约50ms.
应用程序预热后,上下文创建速度不慢.应用程序回收后,它开始时间为2-4毫秒(这是我们在开发环境中看到的).上下文创建似乎随着时间的推移而变慢.在接下来的几个小时内,它将爬升到50-80ms的范围并保持平稳.
我们的上下文是一个相当大的代码优先上下文,包含大约300个实体 - 包括一些实体之间的一些非常复杂的关系.我们正在运行EF 6.1.3.我们正在执行"每个请求一个上下文",但对于我们的大多数Web API调用,它只执行一个或两个查询.创建一个60 + ms的上下文,然后执行1ms的查询有点不满意.我们每分钟有大约10k个请求,所以我们不是一个很少使用的网站.
这是我们所看到的快照.时间在MS,最重要的是部署回收app域.每行是4个不同的Web服务器之一.请注意,它并不总是相同的服务器.
我确实采取了内存转储尝试充实了正在发生的事情,这里是堆统计信息:
00007ffadddd1d60 70821 2266272 System.Reflection.Emit.GenericFieldInfo
00007ffae02e88a8 29885 2390800 System.Linq.Enumerable+WhereSelectListIterator`2[[NewRelic.Agent.Core.WireModels.MetricDataWireModel, NewRelic.Agent.Core],[System.Single, mscorlib]]
00007ffadda7c1a0 1462 2654992 System.Collections.Concurrent.ConcurrentDictionary`2+Node[[System.Object, mscorlib],[System.Object, mscorlib]][]
00007ffadd4eccf8 83298 2715168 System.RuntimeType[]
00007ffadd4e37c8 24667 2762704 System.Reflection.Emit.DynamicMethod
00007ffadd573180 30013 3121352 System.Web.Caching.CacheEntry
00007ffadd2dc5b8 35089 3348512 System.String[]
00007ffadd6734b8 35233 3382368 System.RuntimeMethodInfoStub
00007ffadddbf0a0 24667 3749384 System.Reflection.Emit.DynamicILGenerator
00007ffae04491d8 67611 4327104 System.Data.Entity.Core.Metadata.Edm.MetadataProperty
00007ffadd4edaf0 57264 4581120 System.Signature
00007ffadd4dfa18 204161 4899864 System.RuntimeMethodHandle
00007ffadd4ee2c0 41900 5028000 System.Reflection.RuntimeParameterInfo
00007ffae0c9e990 21560 5346880 System.Data.SqlClient._SqlMetaData
00007ffae0442398 79504 5724288 System.Data.Entity.Core.Metadata.Edm.TypeUsage
00007ffadd432898 88807 …Run Code Online (Sandbox Code Playgroud) 我有一堆10位数的整数,我在URL中传递.类似于:"4294965286","2292964213".它们总是积极的,总是10位数.
我想将这些整数压缩成可以在URL中使用的最小可能形式(也就是字母和数字完全正常),然后在以后解压缩它们.我已经看过使用gzipstream,但它创建了更大的字符串,而不是更短.
我目前正在使用asp.net,所以vb.net或c#解决方案是最好的.
谢谢
上个月,我们将asp.net网站服务器从Server 2008 R2迁移到Server 2012 R2并升级到asp.net 4.5.我们正在使用cookied表单身份验证来防止未经授权访问该网站.
<authorization>
<deny users="?" />
<allow users="*" />
</authorization>
Run Code Online (Sandbox Code Playgroud)
我们在web.config中列出了白名单的某些资产和页面(例如:登录页面):
<location path="signin">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
Run Code Online (Sandbox Code Playgroud)
在过去的几个月里,我们一直注意到IIS/Asp.net随机停止遵守白名单并假设所有内容都需要进行身份验证.对该服务器上的站点的所有请求都将重定向到登录页面,然后会引发500错误.不能检索列入白名单的资产.
事件查看器中有2个错误,我们可以在IIS混乱时看到这些错误.首先:
Exception type: NullReferenceException
Exception message: Object reference not set to an instance of an object.
at System.Web.PipelineModuleStepContainer.GetNextEvent(RequestNotification notification, Boolean isPostEvent, Int32 eventIndex)
at System.Web.HttpApplication.PipelineStepManager.ResumeSteps(Exception error)
at System.Web.HttpApplication.BeginProcessRequestNotification(HttpContext context, AsyncCallback cb)
at System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context)
Run Code Online (Sandbox Code Playgroud)
第二个不会一直出现:
Event code: 4005
Event message: Forms authentication failed for the request. Reason: The ticket supplied has …Run Code Online (Sandbox Code Playgroud) 我们有一些ASP.net页面,其中包含超过50行特定于该页面的JavaScript.我们想在CruiseControl构建过程中缩小javascript.
我们已经使用YUI Compressor来压缩我们的完整javascript和css文件.但我们无法弄清楚如何进行内联javascript.
是否有一个MSBuild任务来旋转asp.net页面并缩小javascript?
背景
我接手了一个非常大的asp.net网站项目.旧的部署过程是将.cs,.aspx和.ascx文件复制到IIS并使其动态构建.我想预编译它并使用TeamCity自动部署它.我已经完成了一些其他网站项目.
该项目有大约350个用户控件,这些控件在文件夹中组织得很好,但在整个地方都可以使用.从其他文件夹引用的控件,彼此...基本上是循环文件引用的噩梦.
我的尝试
我的第一次尝试是像其他人一样建立它.MS建立整个vs2012解决方案.我遇到了大量"不允许循环文件引用".来发现所有这些组织良好的控件在任何地方都使用,并且有循环引用到处都是.我读了这个,然后我将"web.config"切换为compilation batch="false",然后在构建中将网站设置为"不可更新"和"使用固定命名程序集".该网站构建,但在我的四核,ssd,16gb ram开发框上编译需要25分钟.这是不可接受的构建时间.
我知道,如果我关闭"使用固定命名程序集",该网站将以更快的速度构建.(我已经在一个较小的网站上证明了这一点.它从4分钟到45秒).当我删除该设置时,我得到了奇怪的构建错误:
c:\Projects\Web\Site.master(146): error CS0433: The type 'ASP.usercontrols_modules_viewprofilepopup_ascx' exists in both 'c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\web\8d37b2c6\4c39f0a\App_Web_viewprofilepopup.ascx.4101713c.dll' and 'c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\web\8d37b2c6\4c39f0a\App_Web_xa514so5.dll'
c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\web\8d37b2c6\4c39f0a\App_Web_site.master.cdcab7d2.0.cs(927): error CS0433: The type 'ASP.usercontrols_modules_viewprofilepopup_ascx' exists in both 'c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\web\8d37b2c6\4c39f0a\App_Web_viewprofilepopup.ascx.4101713c.dll' and 'c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\web\8d37b2c6\4c39f0a\App_Web_xa514so5.dll'
error ASPPARSE: c:\Projects\web\Web\UserControls\Modules\JobsLeftMenu.ascx(128): error CS0433: The type 'ASP.usercontrols_modules_imagesgallerymodule_ascx' exists in both 'c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\web\8d37b2c6\4c39f0a\App_Web_imagesgallerymodule.ascx.4101713c.dll' and 'c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\web\8d37b2c6\4c39f0a\App_Web_nvrj33tx.dll'
error ASPPARSE: c:\Projects\web\Web\Site.master(146): error CS0433: The type 'ASP.usercontrols_modules_viewprofilepopup_ascx' exists in both 'c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\web\8d37b2c6\4c39f0a\App_Web_viewprofilepopup.ascx.4101713c.dll' and 'c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary …Run Code Online (Sandbox Code Playgroud) 我有一个vb.net 3.5类库项目,需要引用具有相同命名空间的两个程序集.我们有两个第三方dll,其中一个是5.1版,另一个是6.1版.它们具有相同的dll文件名,并且它们使用相同的命名空间和函数/类名.项目需要根据具体情况使用其中一种.
我已经研究了ac#process,它使用"extern别名"功能来引入不同的程序集.
http://blogs.msdn.com/b/ansonh/archive/2006/09/27/774692.aspx
Visual Studio 8中程序集引用的Aliases属性有何用处
似乎这个功能并不完全适用于vb.net.
我试过的事情
我已经重命名了第二个dll并添加了对我项目的两个引用.在这一点上,我得到了大量的:
'blah' is ambiguous in the namespace.
所以我需要别名不同的版本.在vb.net中,您可以在import语句中执行别名,例如:
Imports version5 = Somedll.Something
Run Code Online (Sandbox Code Playgroud)
问题是我无法为不同版本的dll设置程序集引用别名.显然在vb.net中,您无法在引用属性窗口中设置它们.所以我尝试在我的项目文件中设置它们,如下所示:
<Reference Include="somedll.5.Navigation">
<HintPath>..\..\Utility\ThirdPartyDLLS\somedll.5.dll</HintPath>
<Aliases>SomeDLL5</Aliases>
<Private>False</Private>
</Reference>
<Reference Include="somedll.6.Navigation, Version=6.1.0.0, Culture=neutral, PublicKeyToken=6d02be8724ca751c, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\Utility\ThirdPartyDLLS\somedll.6.dll</HintPath>
<Aliases>SomeDLL6</Aliases>
<Private>False</Private>
</Reference>
Run Code Online (Sandbox Code Playgroud)
我希望这可以工作:
Imports version5 = SomeDLL5.Something
Imports version6 = SomeDLL6.Something
Run Code Online (Sandbox Code Playgroud)
但是"SomeDLL5/6"并没有出现在intellisense中.那么如何在同一个项目中引用两个dll呢?
随着Visual Studio 2010 SP1和IIS Express的发布,我们希望在我们的本地开发机器上运行我们的asp.net 3.5网站而不是我们的iis5实例.
除了使用ISAPI Rewrite的url重写规则之外,我们所有的代码都运行良好.我们选择ISAPI_Rewrite 3,因为它与apache .htaccess文件非常相似.
我们如何在iis express中使用ISAPI Rewrite?
我一直在尝试使用此命令从Cassandra数据库中检索数据:
select A_NO from Activity where CALL_TYPE IN ('MOC');//here CALL_TYPE is not the row id
Run Code Online (Sandbox Code Playgroud)
但它显示:
Expected key 'KEY' to be present in where clause for 'Activity'
Run Code Online (Sandbox Code Playgroud)
在cassandra中是否有可能借助非主键过滤数据?
asp.net ×7
.net ×3
c# ×3
msbuild ×3
vb.net ×3
iis ×2
.net-3.5 ×1
.net-4.0 ×1
cassandra ×1
compression ×1
cql ×1
dll ×1
iis-express ×1
javascript ×1
minify ×1
msdeploy ×1
namespaces ×1
performance ×1
primary-key ×1
select ×1
sql-server ×1
where ×1