小编Mat*_*ott的帖子

使用ASP.NET/SQL Server丢失会话状态

我有一个ASP.NET MVC工作流配置为由负载均衡器管理的两个网站.这些网站使用Sql Server作为会话状态提供程序,并关闭身份验证(不需要).

现在,偶尔我似乎失去了会话状态,我相信这是因为请求由备用服务器处理,所以基本上用户从服务器跳到服务器,这取决于负载均衡器看起来如何适合.我并不总是在工作流的同一阶段"丢失会话状态",所以我认为它与Web场配置+ sql server会话状态有关.

两个应用程序使用相同的机器密钥来加密和解密存储在sql server中的会话状态.

两台服务器上的配置如下:

<authentication mode="None" />
<sessionState mode="SQLServer" sqlConnectionString="{connection-string}" />
<machineKey decryptionKey="777CB456774AF02F7F1AC8570FAF31545B156354D9E2DAAD" 
            validationKey="89B5B536D5D17B8FE6A53CBB3CA8B8695289BA3DF0B1370BC47D362D375CF91525DDB5307D8A288230DCD4B3931D23AED4E223955C45CFF2AF66BCC422EC7ECD" />
Run Code Online (Sandbox Code Playgroud)

我已经确认两台服务器上都是一样的,有什么我遗漏的吗?

当我使用单个服务器时,在我的开发环境中不会发生这种情况.

我担心我会受到星期五蓝调的影响,毫无疑问下周会找到答案,遗憾的是我不想等!

有任何想法吗?

asp.net asp.net-mvc sql-session-state machinekey

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

使用Roslyn在引用的程序集中获取接口实现

我想在我正在开发的框架中绕过一些经典的汇编扫描技术.

所以,说我已经定义了以下合同:

public interface IModule
{

}
Run Code Online (Sandbox Code Playgroud)

这就是说Contracts.dll.

现在,如果我想发现这个接口的所有实现,我们可能会做类似以下的事情:

public IEnumerable<IModule> DiscoverModules()
{
    var contractType = typeof(IModule);
    var assemblies = AppDomain.Current.GetAssemblies() // Bad but will do
    var types = assemblies
        .SelectMany(a => a.GetExportedTypes)
        .Where(t => contractType.IsAssignableFrom(t))
        .ToList();

    return types.Select(t => Activator.CreateInstance(t));
}
Run Code Online (Sandbox Code Playgroud)

不是一个很好的例子,但它会做.

现在,这些类型的汇编扫描技术可能完全不足,而且它们都在运行时完成,通常会影响启动性能.

在新的DNX环境中,我们可以使用ICompileModule实例作为元编程工具,因此您可以将实现捆绑ICompileModuleCompiler\Preprocess项目中的文件夹中,并让它做一些时髦的事情.

我的目标是使用一个ICompileModule实现来完成我们在运行时在编译时所做的工作.

  • 在我的引用(包括编译和程序集)和我当前的编译中,发现所有可实现的实例 IModule
  • 创建一个类,让我们ModuleList用一个实现来调用它,该实现产生每个模块的实例.
public static class ModuleList
{
    public static IEnumerable<IModule>() GetModules()
    {
        yield return new Module1();
        yield return new Module2();
    } …
Run Code Online (Sandbox Code Playgroud)

c# metaprogramming roslyn dnx

15
推荐指数
2
解决办法
1574
查看次数

Chrome输入类型="数字"CSS样式

我有以下输入类型="数字":

<input id="myid" type="number" name="input" min="0" max="100" step="1" value="0">
Run Code Online (Sandbox Code Playgroud)

在Chrome中,您只能看到2个增加或减少值的箭头.有没有办法设置这些控件的样式.就像是:

#myid::-webkit-
Run Code Online (Sandbox Code Playgroud)

html5 google-chrome input

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

在Visual Studio 2015中调试期间缺少本地人员

问题
Locals仅this在调试时显示变量,其他局部变量在LocalsWatch中不可用,但可以在Visual Studio的中间窗口中重新评估

缺少本地的Visual Studio调试窗口

简介
我正在为我正在编写的一些代码调试Xunit测试.我正在测试的库是ASP.NET Core RC1的目标.这是我的project.json:

{ "authors": [ "Matthew Abbott" ], "commands": { "test": "xunit.runner.dnx" }, "description": "Provides tests for the Fx.Content.Composer package", "dependencies": { "xunit": "2.1.0-rc1-build3168", "xunit.runner.dnx": "2.1.0-rc1-build204", "Fx.Content.Composer": "" }, "frameworks": { "dnx451": { }, "dnxcore50": { "dependencies": { "System.Runtime": "4.0.21-beta-23516" } } }, "licenseUrl": "", "projectUrl": "", "tags": [ "" ], "version": "1.0.0-*" }

在调试单元测试时(我在构建的测试功能中使用Visual Studio),我可以设置断点,但是Locals/Watch窗口不允许我检查局部变量声明.我也没有得到那些局部变量的变量工具提示.

如果我将我的语句复制并粘贴到Intermediate中,则会将它们添加到范围中,但我无法直接调试.

我尝试过的事情

  • 确保我在调试模式下编译
  • 禁用JIT优化
  • 重置我的Visual Studio设置

值得注意的事情

  • 我最近安装了Visual Studio …

debugging xunit visual-studio-2015 dnx asp.net-core

10
推荐指数
1
解决办法
3837
查看次数

在中等信任中编译代码

与Ben(@BuildStarted)一起,我们一直在构建RazorEngine项目,该项目旨在允许您编译和解析ASP.NET MVC之外的任意模板.该项目暂时有几个版本,反馈非常好(感谢大家!).但是,我们遇到了一个问题:中等信任.

因为我们使用CSharpCodeProvider来编译Razor生成的类(加载到当前的AppDomain中以便执行),所以我们SecurityException在尝试调用它时会遇到一个问题,因为它强制执行LinkDemand.当编译正常的ASP.NET页面时(无论信任级别如何),它通过BuildProvider通常为GAC的方式执行此操作,因此可以通过授予适当的编译权限.因此,ASP.NET WebForms在Medium信任中作为标准工作.

我们的代码没有,我们需要针对我们的构建库不会部署到GAC并且在中等信任中运行的场景.所以我们考虑BuildProvider专门构建它并将编译推迟到ASP.NET构建系统,但这似乎过于复杂和脱节,并且提供者本身需要通过文件扩展名和虚拟路径进行映射(可能会也可能不会解析为物理文件 - 想想VirtualPathProvider).这一切似乎都是过度的,只是为了让项目在中等信任中运作; 不仅如此,而且纯粹用于ASP.NET项目,因为我们的引擎也可以在ASP.NET之外运行

所以我的问题是,有没有人知道在中等信任环境中编译C#代码的任何技术或技术?

提前致谢.

c# asp.net compilation razor

9
推荐指数
1
解决办法
1232
查看次数

Rewriting custom tag attributes using IIS Url Rewrite 2.0 and ARR

I've developed a custom grid control that uses data-* attributes to configure how the grid is supposed to work (in a similar vein to how Bootstrap data API components work. For a particular deployment, I'm having to proxy my web application into another web application using IIS and Application Request Routing (ARR) + URL Rewrite. The proxying part is all done, I'm currently trying to configure the outbound rules for rewriting urls to match. For instance, I currently have rules …

iis url-rewriting custom-tags arr

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

是否有必要在try-catch块的最后一个块中释放对象?

问题是自我解释:

Foo objfoo;
try
{
  objfoo = new Foo();
  ..........
  .........
}
catch
{

}
finally
{
  objfoo = null;
} 
Run Code Online (Sandbox Code Playgroud)

是否有必要释放这样的对象?

c# try-catch

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