小编Ash*_*ous的帖子

在对象上实现更改跟踪的最佳方法是什么

我有一个包含5个属性的类.

如果任何值被分配给这些字段中的任何一个,则另一个值(例如IsDIrty)将改变为真.

public class Class1
{
    bool IsDIrty {get;set;}

    string Prop1 {get;set;}
    string Prop2 {get;set;}
    string Prop3 {get;set;}
    string Prop4 {get;set;}
    string Prop5 {get;set;}
}
Run Code Online (Sandbox Code Playgroud)

.net c#

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

如何设置Azure SQL以自动重建索引?

在内部部署SQL数据库中,有一个维护计划可以偶尔重建索引,而不是那么多.

如何在Azure SQL DB中进行设置?

PS:我之前尝试过,但由于我找不到任何选项,我想也许他们自动这样做,直到我读完这篇文章并试过:

SELECT
 DB_NAME() AS DBName
 ,OBJECT_NAME(ps.object_id) AS TableName
 ,i.name AS IndexName
 ,ips.index_type_desc
 ,ips.avg_fragmentation_in_percent
 FROM sys.dm_db_partition_stats ps
 INNER JOIN sys.indexes i
 ON ps.object_id = i.object_id
 AND ps.index_id = i.index_id
 CROSS APPLY sys.dm_db_index_physical_stats(DB_ID(), ps.object_id, ps.index_id, null, 'LIMITED') ips
 ORDER BY ps.object_id, ps.index_id
Run Code Online (Sandbox Code Playgroud)

并发现我有需要维护的索引 在此输入图像描述

sql-server azure azure-sql-database azure-sql-server

11
推荐指数
2
解决办法
8296
查看次数

无法从X509Store读取CurrentUser证书

我正在开发ASP.NET 4.0 Web应用程序,我想从X509Store读取当前用户证书.读取LocalMachine证书工作正常,但如果我将StoreLocation设置为CurrentUser,它会给我一个空集合.

以下代码工作正常:

X509Store store = new X509Store(StoreName.My, StoreLocation.LocalMachine); // StoreLocation.CurrentUser
store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly);
Run Code Online (Sandbox Code Playgroud)

我已经检查了我的个人商店(通过certmgr.mmc),我确信我有证书.

我错过了什么?(store.Certificates为空)

c# asp.net x509certificate2 x509certificate

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

Sendgrid API:提供的授权无效、已过期或已撤销

我刚刚创建了一个 sendgrid 帐户。然后我转到设置=> API 密钥并单击“创建 API 密钥”并授予任何可能的权限。

然后我创建了 ac# 项目,添加了 nuget 包,并从这里编写了 hello world 代码

 public async Task HelloEmail()
 {
            dynamic sg = new SendGrid.SendGridAPIClient("XXX-XXXXXXXXXXXXXXXXXX", "https://api.sendgrid.com");

        Email from = new Email("MY@Email.com");

        String subject = "Hello World from the SendGrid CSharp Library";
        Email to = new Email("test@example.com");
        Content content = new Content("text/plain", "Textual content");
        Mail mail = new Mail(from, subject, to, content);
        Email email = new Email("test2@example.com");
        mail.Personalization[0].AddTo(email);

        dynamic response = await sg.client.mail.send.post(requestBody: mail.Get());

        var x=response.StatusCode;
        var y = response.Body.ReadAsStringAsync().Result; …
Run Code Online (Sandbox Code Playgroud)

c# sendgrid

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

发现内存泄漏

我有一个Web应用程序,我使用很多不同的第三方组件,CMS,当然还有我的代码.出于某种原因,我失去了内存异常.

脚本引发了异常:内存不足

我试图找出发生了什么.这就是我发现的:

  • 我用50个线程运行测试来调用我的web应用程序的15页.记忆似乎很好.IIS进程仅使用400 MB的RAM

  • 我在web.config中添加了一个空格,突然我的IIS进程在30分钟内开始增长到超过GB.Visual Studio无法拍摄我的内存快照,因为它太大了(真的吗?!)所以我安装了ANTS内存分析器,但它说我的应用程序只使用了大约300 MBANTS只有300 MB

IIS进程需要1 GB [1]:https://i.stack.imgur.com/Ig8pY.png

几分钟后我停止了测试,但内存没有释放.

(ANTS探测器停止工作,所以我重新启动它) 发布后422MB IIS 1.2GB 摘要 4MB的字符串

它似乎并不是应用程序特别使用100-200MB内存我正在为我的控制器使用输出缓存.我不明白的是,IIS消耗的内存一直在增长,出现了什么问题

更新

我的应用程序已自动重启,W3WP崩溃导致IIS释放内存,而我的压力没有运行一段时间:

应用程序:w3wp.exe Framework版本:v4.0.30319描述:由于.NET运行时在IP 5A3A86F1(5A0F0000)中出现内部错误而导致进程终止,退出代码为80131506.

和

错误应用程序名称:w3wp.exe,版本:10.0.15063.0,时间戳:0xacce422f错误模块名称:clr.dll,版本:4.7.2098.0,时间戳:0x59028d36异常代码:0xc0000005错误偏移量:0x002b86f1错误进程id:0x50a4错误应用程序启动时间:0x01d2ee688f323893错误应用程序路径:C:\ WINDOWS\SysWOW64\inetsrv\w3wp.exe错误模块路径:C:\ Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll报告ID:4362ddc5-f8d7- 4441-8916-3830f9268b3a错误包全名:错误包相关申请ID:

在此输入图像描述

更新2

我运行DebugDiag并且我已经对网站进行了压力测试,直到它消耗了大约3.5 GB的RAM.

在此输入图像描述

Chakra是微软的图书馆.

在此输入图像描述 在此输入图像描述

所以现在我有2个问题.

  1. ChakraCore是泄漏还是正在使用/分配它?如何定义哪个库?

2-它说27,000个分配.这是否意味着内存中仍有27,000个或者其中一些可能被分配然后处理?

3-它还没有告诉我任何关于3GB消耗RAM的剩余部分.它我总共只有600 MB(私有+虚拟).

c# iis asp.net-mvc memory-leaks memory-management

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

swift:如何删除特定字符?

一个字符串,如! !! yuahl! !,我想删除!和 ,当我像这样的代码

for index in InputName.characters.indices {
    if String(InputName[index]) == "" || InputName.substringToIndex(index) == "!" {
        InputName.removeAtIndex(index)
    }
}
Run Code Online (Sandbox Code Playgroud)

有这个错误"致命错误:下标:subRange扩展过String结束",我该怎么办?THX:D

string swift swift2

6
推荐指数
3
解决办法
9686
查看次数

在MATLAB上绘制隐式函数x + y - log(x) - log(y)-2 = 0

我想在Matlab上绘制上述函数,所以我使用了以下代码

ezplot('-log(x)-log(y)+x+y-2',[-10 10 -10 10]);
Run Code Online (Sandbox Code Playgroud)

但是我只是一个空白的屏幕.但显然至少有一点(1,1)满足等式.我不认为绘图仪设置有问题,因为我正在获取类似函数的图形

ezplot('-log(y)+x+y-2',[-10 10 -10 10]); 
Run Code Online (Sandbox Code Playgroud)

我没有足够的代表来嵌入图片:)

matlab plot graph

6
推荐指数
2
解决办法
491
查看次数

在 MVC 5 上启用 C# 6 不起作用

我知道以前有人问过这个问题,我尝试了他们的解决方案,但我仍然遇到问题。

简而言之:

我的代码编译,我可以浏览页面和所有内容,但VS 一直向我显示错误

错误 CS8026 功能“空传播运算符”在 C# 5 中不可用。
请使用语言版本 6 或更高版本。

在此处输入图片说明

我在这里浏览了所有答案:

C# 6.0 功能不适用于 Visual Studio 2015

我有什么

  • VS 2015 更新 3、ReSharper Ultimate 2017.1.2、MVC 5

  • 最新版本的codeome

  • 我的 webconfig 中的这一部分

代码

  <system.codedom>
    <compilers>
      <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.4.0, Culture=neutral, Pub[1]licKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:7 /nowarn:1659;1699;1701"/>
      <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.4.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:15 /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+"/>
    </compilers>
  </system.codedom>
Run Code Online (Sandbox Code Playgroud)

我试过 .net 框架 4.6.1 和 4.6.2

.net 版本

在我的 build>advanced 上将语言版本设置为 C# 6.0先进的

我没有启用 C# 6, 按钮可能是因为它已经为编译器启用了。 在此处输入图片说明

  • 我安装了 …

c# resharper asp.net-mvc-5 c#-6.0 visual-studio-2015

6
推荐指数
0
解决办法
2145
查看次数

无法使用webconfig中的applicationInitialization预热页面

我有一个简单的Umbraco 7.7.2应用程序,我在Azure(app-service)上托管它.当我重新启动服务器时,第一次请求一个非常烦人的页面需要20-40秒,特别是当负载很高时,你需要缩小以减少响应时间.

我在webconnfig中尝试过这个设置,但它似乎不起作用.

<system.webServer>
  <applicationInitialization>
    <add initializationPage="/page1/?warmup=1" hostName="mydomain.com" />
    <add initializationPage="/page1/page2/?warmup=1" hostName="mydomain.com" />
  </applicationInitialization>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)

我可能会以错误的方式尝试它,但我做的是重新启动服务器,我已经离开它2-3分钟而没有请求任何页面.

我检查了我的Umbraco日志,应用程序甚至没有启动.然后我已经请求了主页,它花了40秒才出现.

然后我尝试了mydomain.com/page1,它也花了20秒,因为它是第一个访问它的请求.

*PS:第一次请求后,网站速度非常快,每页加载时间不到100毫秒

更新

我已经实现了重写以阻止下一次重定向,正如Kevin建议的那样.结果,我的Umbraco将启动,但请求仍然没有到达页面.

在我的母版页,我添加了一行写在日志中的线路,如果它在查询字符串的热身和它的作品在页面从浏览器hitted:

if (!string.IsNullOrWhiteSpace( Request.QueryString["warmup"]))
    {
        var pageC = Model.Content;
        logger.Info(pageC.UrlAbsolute()+" "+ Request.QueryString);
    }
Run Code Online (Sandbox Code Playgroud)

但是,我的日志中没有任何内容

2018-02-08 15:16:51,245 [P7036/D2/T1] INFO Umbraco.Core.CoreBootManager - Umbraco应用程序启动完成(耗时12727ms)2018-02-08 15:16:54,911 [P7036/D2/T1] INFO MyNamespace.Web.CustomStartup - 基本配置完成!

这是我根据Kevin的回答添加的混淆:

 <rule name="No redirect on warmup request (request from localhost with warmup user agent)" stopProcessing="true">
          <match url=".*" />
          <conditions>
            <add input="{REMOTE_ADDR}" pattern="127.0.0.*" />
              </conditions>
          <action type="Rewrite" url="{URL}" />
        </rule>
Run Code Online (Sandbox Code Playgroud)

另外,我在微软上发现了另一个类似的配置: …

umbraco azure warm-up umbraco7 azure-app-service-envrmnt

6
推荐指数
2
解决办法
1593
查看次数

指定 SQL Server 2012 作为目标平台的项目可能会遇到与 Microsoft Azure SQL Database v12 的兼容性问题

当我尝试将我的代码优先项目发布到 Azure 时,它​​向我显示以下警告:

警告:指定 SQL Server 2012 作为目标平台的项目可能会遇到与 Microsoft Azure SQL Database v12 的兼容性问题。

如何更改目标平台?

我用谷歌搜索过,但我发现的是数据项目的sql项目等等。

c# entity-framework azure ef-code-first visual-studio-2017

5
推荐指数
1
解决办法
5492
查看次数