我在相当繁忙的Windows 2008 R2 Web服务器上运行MySQL时遇到了一些问题.
应用程序间歇性崩溃,并且日志通常指向MySQL作为路由原因,因为应用程序无法连接到MySQL.这并不影响所有用户,只是一些不幸的用户.
打开MySQL中的警告日志记录后,我看到以下警告的重复日志:
[Warning] Aborted connection 7153 to db user: 'XXXX' host: 'XXXXXX' (Got timeout reading communication packets)
Run Code Online (Sandbox Code Playgroud)
这里的文档http://dev.mysql.com/doc/refman/5.0/en/communication-errors.html提出了一系列潜在的网络相关原因.
"高级网络"下的一些配置:
最大数据包大小:128 M(我们从昨天的64 M增加了这个)等待超时:20最大连接数:1000最大连接数:1000重试次数:5
我的问题是,我怎样才能更好地诊断造成这个问题的原因,而不仅仅是玩设置和等待?
提前致谢
我正在使用SignalR,以及JQuery.
一些初始化代码在使用以下语法定义的功能块内运行:
$(function () {
// ... Init code here e.g.
var hub = $.connection.myHub;
});
Run Code Online (Sandbox Code Playgroud)
与直接在一对脚本标签中执行脚本相比,这里的功能区别是什么?
我目前正在考虑基于现有数据集的报告应用程序的设计选项.
鉴于许多报告需要使用相同的基础数据集(已编辑),因此有许多明确的代码重用机会.
最简单的方法是创建一些我可以在整个系统中重用的基本存储过程,但是,我在6个月前左右的合同向我展示了这种做法的缺点 - 多层 - 大型存储过程调用返回的子集数据,使得进行正在进行的调试和测试非常困难.
我现在认为代码重用不一定会增强数据库设计的可维护性.
我正在寻找一个比我自己更有经验的SQL Server开发人员的一些见解?
提前致谢.
我已经开始在ASP.NET MVC 3项目中使用Ninject,使用nuget包附带的标准引导strapper,如下所示.
/// <summary>
/// Load your modules or register your services here!
/// </summary>
/// <param name="kernel">The kernel.</param>
private static void RegisterServices(IKernel kernel)
{
// Documentation for setting up Ninject in ASP.NET MVC3 app:
// https://github.com/ninject/ninject.web.mvc/wiki/Setting-up-an-MVC3-application
// Add bindings here. No modules required unless we need to add in further
// separation of concerns.
kernel.Bind<ISessionManager>().To<SessionManager>();
kernel.Bind<ICookieManager>().To<CookieManager>();
kernel.Bind<ILogManager>().To<LogManager>();
kernel.Bind<IStringOutput>().To<StringOutput>();
}
Run Code Online (Sandbox Code Playgroud)
在我的域模型层中,有一个名为的类CookieManager
.在我的CookieManager
课堂上,我正在使用一个名为的课程SecureObjectSerializer
.
我想使用依赖注入,以便它CookieManager
不会受到严重约束SecureObjectSerializer
.
我不希望MVC项目必须知道SecureObjectSerializer,设置绑定等.这似乎对我来说DI太过分了.
但是,我认为在Domain Model层中,CookieManager应该以DI方式传入SecureObjectSerializer.
我的问题:
要在域模型层中注册绑定,我应该在域模型层中创建Ninject引导程序吗?如果是这样,我该如何触发.我会提供一个钩子并调用像 …
我想在调试模式下运行我的应用程序,而不进行任何捆绑或缩小。在 ASP.NET MVC(框架)中,我可以使用System.Web.Optimization.BundleTable.EnableOptimizations = false
并单独输出源文件的路径。
有没有办法在.NET Core中达到同样的效果
或者,在文件保存时触发捆绑的功能也会有所帮助。
我正在尝试找出使用Microsoft.AspNetCore.App元包的正确方法。
Visual Studio在构建报告时指出,我不应该为Microsoft.AspNetCore.App元包指定版本。
<PackageReference Include="Microsoft.AspNetCore.App" Version="2.2.1" />
Run Code Online (Sandbox Code Playgroud)
因此,我将以上内容替换为:
<PackageReference Include="Microsoft.AspNetCore.App" />
Run Code Online (Sandbox Code Playgroud)
下一个问题是,我的项目所依赖的任何类库项目或程序包都包含对程序包的版本化引用,这些引用也包含在Microsoft.AspNetCore.App元包中,因为存在版本冲突。
<PackageReference Include="Microsoft.Extensions.Configuration" Version="2.2.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="2.1.1" />
<PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="2.1.1" />
Run Code Online (Sandbox Code Playgroud)
因此,我也删除了这些引用上的版本:
<PackageReference Include="Microsoft.Extensions.Configuration" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" />
<PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" />
Run Code Online (Sandbox Code Playgroud)
现在,当我跑步时dotnet restore
,我看到一个警告:
<Project> does not provide an inclusive lower bound for dependency
Microsoft.Extensions.Configuration. An approximate best match of
Microsoft.Extensions.Configuration 1.0.0 was resolved.
Run Code Online (Sandbox Code Playgroud)
因此,现在可以构建该应用程序,但是正在解决旧的且可能已过时的软件包版本。
维护所有这些软件包的下限版本似乎有点开销。
阻力最小的途径似乎是仅引用Microsoft.AspNetCore.App软件包(未版本化)来代替meta软件包中包含的任何软件包。但是,然后我隐式地引用了很多不必要的东西(目前有150个软件包)。我可能想在不面向Web的项目中重用类库,因此所有引用的包似乎效率低下。另外,我是否认为Microsoft.AspNetCore.App的较新版本在将来构建时可能会破坏我的应用程序?
更新 - 现在无需回答,我已在下面解决了.
嗨,我正在尝试在.NET中实现自定义跟踪侦听器,但是在通过配置文件添加跟踪侦听器时遇到问题.
我在堆栈溢出上发现了一个类似的帖子,但它似乎没有帮助(如何在app.config中定义自定义TraceListener).
异常消息是:
ConfigurationErrorsException - "无法创建ApplicationFramework.TraceListeners.TextLogTraceListener,ApplicationFramework.TraceListeners,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null."
正如您在下面的代码中所看到的,我在尝试不使用之后甚至使用了AssemblyQualified名称.
config和dll存在于引用侦听器的应用程序中.
谁能发现我在这里做错了什么?
C#代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace ApplicationFramework.TraceListeners
{
public class TextLogTraceListener : System.Diagnostics.TextWriterTraceListener
{
public override void Write( string message )
{
using (FileStream fs = new FileStream( "C:\\Test\\trace.log", FileMode.Append ))
{
StreamWriter sw = new StreamWriter( fs );
sw.Write( message );
}
}
public override void WriteLine( string message )
{
using (FileStream …
Run Code Online (Sandbox Code Playgroud) 我需要删除并重新创建一个表,该表用于"缓存"昂贵的视图.视图可能会更改,我希望尽可能简化维护,因此我希望新表能够反映最新版本的视图.
我还希望能够防止读取错误,如果一个过程在被删除和重新创建的过程中尝试访问该表.我正在使用一个事务,但是我不确定它是否会在一个'drop'表上工作,因为它不存在.
我在运行drop/recreate视图时,在循环中从视图中完成了一个基本测试,30 x SELECT.到目前为止没有错误.
我已经考虑过使用insert进行截断/删除,但是将来视图中可能更改的列要求我保持尽可能灵活,并且固定列不会对此有所帮助.
任何人都可以告诉我,如果事务在被删除时保护表不受读取访问,这是安全的,还是有更好的方法?
删除/重新创建代码:
BEGIN TRAN
BEGIN TRY
DROP TABLE Persisted_View_1
SELECT * INTO Persisted_View_1
FROM View_1
END TRY
BEGIN CATCH
RAISERROR('The procedure proc_PersistView1 failed to commit, the transaction was rolled back', 16, 1)
IF @@TRANCOUNT > 0
BEGIN
ROLLBACK TRAN
END
END CATCH
IF @@TRANCOUNT > 0
BEGIN
COMMIT TRAN
END
GO
Run Code Online (Sandbox Code Playgroud)
更新:修改查询跟随Brads答案:
ALTER PROCEDURE proc_Drop_Recreate_Persisted_View_MyData
AS
BEGIN
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
BEGIN TRAN
BEGIN TRY
-- Re create
SELECT * INTO Persisted_View_MyData_Temp FROM …
Run Code Online (Sandbox Code Playgroud) 我希望有人可以在Windows Azure上回答一些简短的问题.我知道这有点懒,但覆盖Azure的微软网站似乎是针对半技术项目的领导和充满业务指标 - 他们似乎从来没有真正对'如何'进行简短的概述.
我有一个ASP.NET Web应用程序,需要一些工作来协助扩展(在那里有一些蜘蛛类型的进程和一个非常大的数据库.它还可以调用外部Web服务).
我的问题是:
从开发的角度来看 - 将应用程序从标准的iis/sql server类型设置移植到Azure是多么容易.是否涉及很多编码.我已经开始了一个培训视频,你可以编写"结构"等.将应用程序转换为Azure真的很实用吗?
我听说你可以在Azure中运行Windows Server 2008 R2实例 - 这是否意味着你不一定要使用Azure特定的SDK进行编程,只需将你的iis/sql服务器设置为azure并利用scalablility的好处立即?
在使用Roslyn执行C#脚本时,我对如何添加引用感到困惑.
我正在使用通过NuGet安装的最新版本的API(1.2.20906.2).
我在谷歌上搜索过很多帖子,但是由于我发现了许多例子,因此API发生了重大变化.
为了说明我想要实现的目标:
using System;
using Roslyn.Scripting.CSharp;
namespace Test.ConsoleApp
{
public class Program
{
static void Main(string[] args)
{
new ScriptRunner().RunScripts();
}
}
public class ScriptRunner
{
public void RunScripts()
{
var engine = new ScriptEngine();
var session = engine.CreateSession();
session.AddReference("System");
session.AddReference("System.Linq");
// The following script runs successfully
session.Execute(@"using System;
var arr = new[] {1, 2, 6};
foreach (var i in arr)
{
if(i > 1)
{
Console.WriteLine(i);
}
}"
);
// The following script using Linq fails
session.Execute(@"using …
Run Code Online (Sandbox Code Playgroud) c# ×3
sql-server ×2
.net ×1
.net-core ×1
asp.net-core ×1
azure ×1
database ×1
javascript ×1
jquery ×1
mysql ×1
ninject ×1
roslyn ×1
sql ×1
t-sql ×1