我有一个ASP.NET(Webforms)与.Net Framework 4.0一起工作.
如果我部署与该网站osFamily="1"(在Windows 2008服务器上)的.NET CLR取120 ms平均值(根据日志NewRelic的).
如果我采用确切的站点并将其部署osFamily="3"(在Windows 2012服务器上),则.NET CLR需要更多500 ms.
我知道我应该搬到MVC4也许.Net Framework 4.5,但我想知道是否有其他人遇到过同样的问题,如果你知道是什么原因造成的?

编辑
看起来osFamily=2也有同样的问题.
我有一个拥有大量数据库,集合和索引的mongodb副本集.
我们做了很多重构和优化,当然,我有很多来自消费者的"创意查询".
我想清理未使用的索引.只是想节省一些空间.
如何检查是否正在使用索引?我可以负担得起索引索引并删除未使用的索引.
在所有可能的查询中运行"解释"不是一个选项:)
编辑:基于接受的答案的解决方案
脚本被窃听了.我不是一个JavaScript专家,但我把更正后的脚本.我希望对某人有用:
DB.prototype.indexStats = function() {
var queries = [];
var collections = db.getCollectionNames();
var findQuery = function(q) {
for(entryIdx in queries) {
if(q == queries[entryIdx].query) {
return entryIdx;
}
}
return -1;
}
for(cIdx in collections) {
var cName = collections[cIdx];
var nsName = db.getName()+"."+cName;
if(cName.indexOf("system") == -1) {
var i = 1;
var count = db.system.profile.count({ns:nsName});
print('scanning profile {ns:"'+nsName+'"} with '+count+' records... this could take a while...');
db.system.profile.find({ns:nsName}).addOption(16).batchSize(10000).forEach(function(profileDoc) {
if(profileDoc.query && !profileDoc.query["$explain"]) { …Run Code Online (Sandbox Code Playgroud) 我有以下代码:
public List<anEntity> Get(int page, int pagesize, Func<anEntity, IComparable> orderby)
{
using (var ctx = new MyContext())
{
return ctx.anEntity.OrderBy(orderby).Skip(pagesize * page).Take(pagesize).ToList();
}
}
Run Code Online (Sandbox Code Playgroud)
当我检查我的数据库配置文件(SqlServer 2012)时,我可以看到一个可怕的全表扫描,没有任何"TOP"子句.
有趣的部分:
如果我做类似的事情,但指定具体的顺序:
return ctx.anEntity.OrderBy(x => x.aField).Skip(pagesize * page).Take(pagesize).ToList();
Run Code Online (Sandbox Code Playgroud)
该配置文件显示了一个漂亮的"TOP"条款.
我想避免使用很多方法,每个方法都有一个"orderby"的可能性.任何提示都将非常感激.
我在Azure(WebRole)上托管了一个WCF.WCF做了很多后台任务并回复了一些请愿.
问题是如果WCF长时间没有收到任何请求(10小时或更长时间),应用程序池将在azure实例上回收,并且WCF任务将停止.我做了一些调查,我可以启用一个AutoStart功能来触摸machine.config,但这不是一个azure deploy的选项.
我可以在web.config中启用AutoStart还是部署配置文件?
我有一个MVC4 API REST尝试在新线程中启动进程.我正在使用框架4.5并尝试使用sync和等待clausules.
我的代码看起来像:
[AcceptVerbs("POST")]
public HttpResponseMessage Launch(string id)
{
runProcessAsync(id); // 1
return Request.CreateResponse(HttpStatusCode.Accepted); // 2
}
protected async void runProcessAsync(string id)
{
int exitcode = await runProcess(id); // 3
string exitcodesz = string.Format("exitcode: {0}", exitcode); // 4
// do more stuff with exitcode
}
protected Task<int> runProcess(string id)
{
var tcs = new TaskCompletionSource<int>();
var process = new Process
{
StartInfo = { FileName = @"C:\a_very_slow_task.bat" },
EnableRaisingEvents = true
};
process.Exited += (sender, args) => …Run Code Online (Sandbox Code Playgroud) 我在azure上有一个web角色,我想在不等待第一个请求的情况下强制执行Application_Start.
我设法在我的网站上将"自动启动"属性设置为true
但是在第一个请求到来之前不会调用Application_Start.
我不确切地知道我是否遗漏了一些重要的东西.服务器是W2008 R2,IIS版本是7.5
谢谢!
解
我把解决方案代码放在这里.我希望能帮助别人.我刚刚添加了一个WebRole.cs,只需将该代码放入每30秒执行一次ping操作.请netice我正在浏览Service.svc,因为这是我的端点,你的端点可能是另一个端点.请注意,我要求"Endpoint1".如果您有多个端点,则应该查看该行.
public class WebRole : RoleEntryPoint
{
public override void Run()
{
var localuri = new Uri( string.Format( "http://{0}/Service.svc", RoleEnvironment.CurrentRoleInstance.InstanceEndpoints["Endpoint1"].IPEndpoint ) );
while (true)
{
try
{
var request = (HttpWebRequest)WebRequest.Create(localuri);
request.Method = "GET";
var response = request.GetResponse();
}
catch { }
System.Threading.Thread.Sleep(30000);
}
}
public override bool OnStart()
{
return base.OnStart();
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个Azure云服务,包括生产部署和暂存部署.
我可以升级,停止,删除......生产部署,但我不能对暂存一个进行任何操作.说:
Windows Azure当前正在此部署上执行xxxxx操作,该操作需要独占访问权限.
我等了整个周末,问题仍然存在.如果我查看我的操作日志,我可以看到该跟踪:
<SubscriptionOperation xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<OperationId>xxxxxxxx</OperationId>
<OperationObjectId>/xxxxxxxx/services/hostedservices/fxcalendar/deployments/xxxxxxxx</OperationObjectId>
<OperationName>DeleteDeploymentBySlot</OperationName>
<OperationParameters xmlns:d2p1="http://schemas.datacontract.org/2004/07/Microsoft.WindowsAzure.ServiceManagement">
<OperationParameter>
<d2p1:Name>subscriptionID</d2p1:Name>
<d2p1:Value>xxxxxxxx</d2p1:Value>
</OperationParameter>
<OperationParameter>
<d2p1:Name>serviceName</d2p1:Name>
<d2p1:Value>xxxxxxxx</d2p1:Value>
</OperationParameter>
<OperationParameter>
<d2p1:Name>deploymentSlot</d2p1:Name>
<d2p1:Value>Staging</d2p1:Value>
</OperationParameter>
</OperationParameters>
<OperationCaller>
<UsedServiceManagementApi>true</UsedServiceManagementApi>
<UserEmailAddress>Unknown</UserEmailAddress>
<SubscriptionCertificateThumbprint />
<ClientIP>xxxxxxxx</ClientIP>
</OperationCaller>
<OperationStatus>
<ID>xxxxxxxx</ID>
<Status>Failed</Status>
<HttpStatusCode>409</HttpStatusCode>
<Error>
<Code>ConflictError</Code>
<Message>Windows Azure is currently performing an operation with x-ms-requestid xxxxxxxx on this deployment that requires exclusive access.</Message>
</Error>
</OperationStatus>
<OperationStartedTime>2013-11-04T09:04:37Z</OperationStartedTime>
<OperationCompletedTime>2013-11-04T09:04:38Z</OperationCompletedTime>
</SubscriptionOperation>
Run Code Online (Sandbox Code Playgroud)
我不知道如何恢复Staging部署.我认为只有walkarround才能创建新的云服务并更改DNS.
(MongoDB版本2.6.3)
我有一个副本集:2个节点+仲裁器.副本集没有问题,但我无法连接到仲裁器:
Failed to connect to myarbiter.com, reason: errno:111 Connection refused
2014-07-16T13:41:59.513+0000 Error: couldn't connect to server myarbiter.com ( myIP), connection attempt failed at src/mongo/shell/mongo.js:148
exception: connect failed
Run Code Online (Sandbox Code Playgroud)
Courios是我可以添加和删除节点到我的副本集.连接到辅助或主要,我可以看到仲裁者:
"_id" : 2,
"name" : "myarbiter:myport",
"health" : 1,
"state" : 7,
"stateStr" : "ARBITER",
"uptime" : 4,
"lastHeartbeat" : ISODate("2014-07-16T13:25:13Z"),
"lastHeartbeatRecv" : ISODate("2014-07-16T13:25:13Z"),
"pingMs" : 111
Run Code Online (Sandbox Code Playgroud)
如果我拖尾mongod.log(在Arbiter上),我可以看到
2014-07-16T13:48:15.583+0000 [initandlisten] connection accepted from SOME_IP:SOME_PORT #46 (37 connections now open)
2014-07-16T13:48:15.754+0000 [conn42] authenticate db: admin { authenticate: 1, user: "MYUSER", nonce: "xxx", …Run Code Online (Sandbox Code Playgroud) 我想跟踪一个使用Rhino Mocks的方法的调用.我们假设我有这个代码:
public class A
{
protected IB _b;
public A(IB b)
{
_b = b;
}
public void Run( string name )
{
_b.SomeCall(new C { Name = name });
}
}
public interface IB
{
void SomeCall( C c );
}
public class C
{
public string Name { get; set; }
// more attributes here
}
Run Code Online (Sandbox Code Playgroud)
测试看起来像:
// prepare
var bMock = Rhino.Mocks.MockRepository.GenerateStrictMock<IB>();
bMock.Expect(x => x.SomeCall(new C { Name = "myname" }));
var sut = new A(bMock); …Run Code Online (Sandbox Code Playgroud) 我正在尝试将Semantinc Logging配置为写入Azure的进程.
我终于设法将事件写入表存储.我的问题是如何定义PartitionKey.
我刚刚插入了几个测试,PartitionKeys是:
2520107100599999999
2520107103599999999
Run Code Online (Sandbox Code Playgroud)
我想要由我定义分区(例如,按天分区).
我怎么做?
这是我的实际配置
<windowsAzureTableSink name="Windows Azure Storage" instanceName="xxxxxxx" connectionString="xxxxxxx">
<sources>
<eventSource name="myCompany" level="Error"/>
</sources>
</windowsAzureTableSink>
Run Code Online (Sandbox Code Playgroud) 我刚刚安装了一个Centos 7的新实例
Linux version 3.10.0-229.1.2.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.2 20140120 (Red Hat 4.8.2-16) (GCC) ) #1 SMP Fri Mar 27 03:04:26 UTC 2015
Run Code Online (Sandbox Code Playgroud)
我安装了一个mongodb 3.0,当我连接时,我有这个奇怪的消息:
2015-04-15T07:48:55.583+0000 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2015-04-15T07:48:55.583+0000 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2015-04-15T07:48:55.583+0000 I CONTROL [initandlisten]
2015-04-15T07:48:55.583+0000 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2015-04-15T07:48:55.583+0000 I CONTROL [initandlisten] ** We suggest setting it to 'never'
Run Code Online (Sandbox Code Playgroud)
如何禁用此版本的THP?
我没有运气的事情
我可以禁用它运行此命令:
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag …Run Code Online (Sandbox Code Playgroud) azure ×5
c# ×4
mongodb ×3
.net ×2
asp.net ×2
iis-7.5 ×2
asp.net-mvc ×1
async-await ×1
centos ×1
centos7 ×1
linux ×1
logging ×1
performance ×1
replicaset ×1
rhino-mocks ×1
tdd ×1
unit-testing ×1
wcf ×1
webrole ×1