小编Nic*_*cki的帖子

在开发框上安装SQL Server 2008时要使用的服务帐户

我在我的开发机器上安装SQL Server 2008,在安装过程中,我被要求将帐户分配给不同的服务.如果这是一台简单的开发机器,我应该为没有分配用户的服务使用什么帐户?

  • 我可以使用我登录的帐户(我是这台机器上唯一的用户)吗?
  • 我应该使用NT AUTHORITY/SYSTEM帐户吗?
  • 我是否可以使用上述任何一种或其中一种,或者是否存在缺点或者我应该使用完全不同的东西?

sql-server

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

有没有办法确定Azure App Service重新启动的原因?

我有一堆网站在Azure App Service的单个实例上运行,并且它们都设置为Always On.它们都突然重新启动,导致一切都变慢了几分钟,因为一切都发出了冷的请求.

如果服务将我转移到新主机,我会期待这一点,但这没有发生 - 我仍然使用相同的主机名.

重启时CPU和内存使用情况正常,我没有启动任何部署或类似的事情.我没有看到重启的明显原因.

有没有记录任何地方,我可以看到弄清楚为什么他们都重新启动?或者,这只是App Service不时做的正常事情吗?

azure azure-web-sites azure-web-app-service

23
推荐指数
1
解决办法
5720
查看次数

ASP.NET网站+ Windows窗体应用程序+ WCF服务:客户端凭据

假设我正在考虑设计一个WCF服务,其主要目的是提供可供三个不同应用程序使用的广泛服务:面向公众的Web站点,内部Windows窗体应用程序和无线移动设备.该服务的目的有两个:(1)在中央位置合并与业务流程相关的代码,以及(2)锁定对遗留数据库的访问,最终一劳永逸地将其隐藏在一套服务之后.

目前,三个应用程序中的每一个都有自己的持久性和域层,同一数据库的视图略有不同.而不是所有三个应用程序都与数据库通信,它们将与WCF服务进行通信,从而启用某些客户端的新功能(移动选择器当前无法触发进程发送电子邮件),并集中通知系统(而不是对于新订单,计划任务每​​五分钟轮询一次数据库,只需在AcceptNewOrder()其中一个客户端调用服务方法时ping开销分页系统).总而言之,到目前为止听起来非常清醒.

然而,就整体设计而言,在安全方面我很难过.Windows窗体应用程序目前只使用Windows主体; 员工存储在Active Directory中,在应用程序启动时,他们可以以当前Windows用户身份登录(在这种情况下不需要密码),也可以提供他们的域名和密码.移动客户端没有任何用户概念; 它与数据库的连接是一个硬编码字符串.该网站有数千个用户存储在旧数据库中.那么如何实现身份模型并配置WCF端点来处理这个问题呢?

就Windows窗体应用程序而言,这不是一个大问题:WCF代理可以启动一次并且可以在内存中闲逛,所以我只需要一次客户端凭据(如果代理有问题,可以再次提示它们).移动客户端可以是特殊的,并使用X509证书对WCF服务进行身份验证.但是我该如何处理这个网站呢?

在网站的情况下,允许匿名访问某些服务.对于需要在假设的"客户"角色中进行身份验证的服务,我显然不希望在每个请求上对它们进行身份验证,原因有两个:

  • 我每次都需要他们的用户名和密码.几乎可以在任何地方存储这对信息 - 会话,加密的cookie,月亮 - 似乎是一个坏主意.
  • 我必须为每个请求点击数据库中的users表.哎哟.

我能想到的唯一解决方案是将Web站点视为可信子系统.WCF服务需要来自Web站点的特定X509证书.该网站在内部使用表单身份验证(调用AuthenticateCustomer()返回布尔结果的服务上的方法),可以向凭据列表添加其他声明,例如"joe@example.com以客户身份登录".然后以某种方式可以在具有该声明的服务上构建自定义IIdentity对象和IPrincipal,WCF服务确信该网站已经正确地验证了该客户(它将知道该声明尚未被篡改,至少,因为它会提前知道网站的证书.

所有这一切到位,WCF服务代码将能够说这样的话[PrincipalPermission.Demand(Role=MyRoles.Customer)]还是[PrincipalPermission.Demand(Role=MyRoles.Manager)]Thread.CurrentPrincipal将具有表示的用户(电子邮件地址为雇员客户或专有名称的东西,他们都非常有用用于记录和审计).

换句话说,每个服务都会存在两个不同的端点:一个接受着名的客户端X509证书(用于移动设备和网站),另一个接受Windows用户(用于员工).

对不起,这么久.所以问题是:这有什么意义吗?提议的解决方案是否有意义?我是不是太复杂了?

architecture asp.net authentication wcf

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

指定GDI设备上下文的DPI

我有一个生成元文件(EMF)的应用程序.它使用参考设备(也就是屏幕)来渲染这些元文件,因此元文件的DPI会根据运行代码的机器而改变.

假设我的代码打算创建一个8.5英寸x 11英寸的图元文件.使用我的开发工作站作为参考,我最终获得了一个EMF

  • 一个{0,0,21590,27940}的rclFrame(图元文件的维度,以千分之一毫米为单位)
  • {1440,900}的szlDevice(参考设备的尺寸,以像素为单位)
  • a {416,260}的szlMillimeters(参考设备的尺寸,单位mm)

好的,所以rclFrame告诉我EMF的大小应该是

  • 21590/2540 =宽8.5
  • 27940/2540 = 11英寸高

对吧.使用这些信息,我们也可以确定我的显示器的物理DPI,如果我的数学是正确的:

  • (1440*25.4)/ 416 = 87.9231水平dpi
  • (900*25.4)/ 260 = 87.9231垂直dpi

问题

凡是播放此图元文件 - 一个EMF到PDF转换,在"摘要"页上的Windows资源管理器等的EMF时,单击鼠标右键 - 似乎截断计算的DPI值,显示87的,而不是87.9231(甚至88会很好).

当播放元文件时,这会导致页面的物理大小为8.48 x 10.98 in(使用87 dpi)而不是8.5 in x 11 in(使用88 dpi).

  • 是否可以更改参考设备的DPI,以便存储在用于计算DPI的图元文件中的信息出现一个很好的整数?
  • 我可以创建自己的设备上下文并指定其DPI吗?或者我真的必须使用打印机来做到这一点?

感谢您的任何见解.

gdi rounding-error metafile

12
推荐指数
2
解决办法
7141
查看次数

重新包装硬包装文本的算法?

假设我为我所工作的公司编写了一个自定义电子邮件管理应用程序.它从公司的支持帐户中读取电子邮件,并将清理后的纯文本版本存储在数据库中,执行其他整洁的操作,例如将其与客户帐户和流程中的订单相关联.当员工回复邮件时,我的程序会生成一封电子邮件,该电子邮件使用格式化的讨论主题版本发送给客户.如果客户响应,则应用程序在主题行中查找唯一编号以读取传入消息,删除先前的讨论,并将其添加为线程中的新项目.例如:

This is a message from Contoso customer service.

Recently, you requested customer support. Below is a summary of your 
request and our reply.

--------------------------------------------------------------------
Contoso (Fred) on Tuesday, December 30, 2008 at 9:04 a.m.
--------------------------------------------------------------------
John:

I've modified your address. You can confirm my work by logging into
"Your Account" on our Web site. Your order should ship out today.

Thanks for shopping at Contoso.

--------------------------------------------------------------------
You on Tuesday, December 30, 2008 at 8:03 a.m.
--------------------------------------------------------------------
Oops, I entered …

string algorithm text word-wrap

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

ASP.NET MVC 3,动作过滤器和Autofac依赖注入

ASP.NET MVC 2上,我有一个ActionFilterAttribute调用[Transaction],在执行操作之前启动一个NHibernate事务,然后提交或回滚它,具体取决于是否抛出异常.该ISession实例HttpRequestScoped()Autofac注入.它看起来像这样,效果很好:

[AttributeUsage(AttributeTargets.Method | AttributeTargets.Class)]
public sealed class TransactionAttribute : ActionFilterAttribute
{
    private ITransaction transaction;

    public TransactionAttribute()
    {
        this.Order = 0;
    }

    public ISession Session
    {
        get;
        set;
    }

    public override void OnActionExecuted(
        ActionExecutedContext filterContext)
    {
        if (this.Session != null && this.transaction != null)
        {
            try
            {
                if (this.transaction.IsActive)
                {
                    if (filterContext.Exception == null)
                    {
                        this.transaction.Commit();
                    }
                    else
                    {
                        this.transaction.Rollback();
                    }
                }
            }
            finally
            {
                this.transaction.Dispose();
                this.transaction …
Run Code Online (Sandbox Code Playgroud)

autofac action-filter asp.net-mvc-3

6
推荐指数
1
解决办法
5630
查看次数

在通过SharpDX渲染Direct2D图像时,如何使用内存流而不是文件?

设置

考虑给定的临时程序使用SharpDX(Direct*库的托管包装器)来渲染位图并将其保存为PNG:

namespace ConsoleApplication5
{
    using System;
    using System.Diagnostics;
    using System.IO;
    using SharpDX;
    using SharpDX.Direct2D1;
    using SharpDX.DirectWrite;
    using SharpDX.DXGI;
    using SharpDX.IO;
    using SharpDX.WIC;
    using AlphaMode = SharpDX.Direct2D1.AlphaMode;
    using Bitmap = SharpDX.WIC.Bitmap;
    using D2DPixelFormat = SharpDX.Direct2D1.PixelFormat;
    using WicPixelFormat = SharpDX.WIC.PixelFormat;

    class Program
    {
        static void Main(string[] args)
        {
            var width = 400;
            var height = 100;
            var pixelFormat = WicPixelFormat.Format32bppBGR;

            var wicFactory = new ImagingFactory();
            var dddFactory = new SharpDX.Direct2D1.Factory();
            var dwFactory = new SharpDX.DirectWrite.Factory();

            var wicBitmap = new …
Run Code Online (Sandbox Code Playgroud)

asp.net direct2d sharpdx

6
推荐指数
1
解决办法
2399
查看次数

从.NET 3.0升级到3.5:在Web Garden中,设置为StateServer的站点将恢复为InProc

场景:

使运行.NET 3.0的服务器和在启用了Web园的应用程序池中运行的ASP.NET Web站点(进程数:3).web.config配置如下:

    <sessionState
      cookieless="UseCookies"
      cookieName=".authz"
      mode="StateServer"
      regenerateExpiredSessionId="true"
      stateConnectionString="tcpip=127.0.0.1:42424"
      timeout="60"
      useHostingIdentity="true" />

现在将计算机升级到.NET 3.5 SP1.重新启动服务器.结果:不再在w3wp.exe的实例之间维护会话,就好像所有会话都还原为InProc一样.目前的解决方法是减少到1个工作进程.

奇怪的是:不同服务器上的相同代码没有遇到任何问题.我之前遇到过这个问题,但重启后神奇地消失了.我已经重新开始了一次,但到目前为止还没有快乐.

比较两台服务器的两台machine.configs和web.configs:相同.

其他人遇到过这个问题,但没有回答.

有任何想法吗?我真的很难过这个.

.net asp.net session state state-server

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

在调用自定义NHibernate IIdentifierGenerator之后确保插入

设置

我们数据库的一些"旧旧旧"表使用了一种奇特的主键生成方案[1],我试图用NHibernate覆盖这部分数据库.这种生成方案主要隐藏在称为"ShootMeInTheFace.GetNextSeededId"的存储过程中.

我写了一个IIdentifierGenerator调用这个存储过程:

public class LegacyIdentityGenerator : IIdentifierGenerator, IConfigurable
{
    // ... snip ...
    public object Generate(ISessionImplementor session, object obj)
    {
        var connection = session.Connection;

        using (var command = connection.CreateCommand())
        {
            SqlParameter param;

            session.ConnectionManager.Transaction.Enlist(command);

            command.CommandText = "ShootMeInTheFace.GetNextSeededId";
            command.CommandType = CommandType.StoredProcedure;

            param = command.CreateParameter() as SqlParameter;
            param.Direction = ParameterDirection.Input;
            param.ParameterName = "@sTableName";
            param.SqlDbType = SqlDbType.VarChar;
            param.Value = this.table;
            command.Parameters.Add(param);

            // ... snip ...

            command.ExecuteNonQuery();

            // ... snip ...

            return ((IDataParameter)command
                .Parameters["@sTrimmedNewId"]).Value as string);
     }
}
Run Code Online (Sandbox Code Playgroud)

问题

我可以在XML映射文件中映射它,它工作得很好,但....

当NHibernate尝试批量插入时,例如在级联中,或者 …

legacy nhibernate nhibernate-mapping

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