小编Har*_*wok的帖子

SQL Server停止加载程序集

我们为SQL Server 2008 R2开发了一个程序集.

大会已经工作了一个星期.程序集内的托管存储过程在整个星期都运行良好,然后它停止工作.我们已经多次看到这个问题了.使其再次工作的方法是重新启动SQL Server.

Msg 10314, Level 16, State 11, Line 4
An error occurred in the Microsoft .NET Framework while trying to load assembly id 65536. The server may be running out of resources, or the assembly may not be trusted with PERMISSION_SET = EXTERNAL_ACCESS or UNSAFE. Run the query again, or check documentation to see how to solve the assembly trust issues. For more information about this error: 
  System.IO.FileLoadException: Could not load file or assembly 'myAssembly, …
Run Code Online (Sandbox Code Playgroud)

.net sql-server logging sqlclr sql-server-2008-r2

43
推荐指数
7
解决办法
5万
查看次数

SQL Server中的最大数据库名称长度

我正在尝试对数据库名称进行一些UI验证.从不同的地方我被告知SQL Server数据库名称在SQL Server中存储为sysname.我还通过检查sys.Databases来验证.

所以,我让UI中的文本框长度为128个字符.这是sysname类型的最大长度.

但是,我发现在我的SQL Server 2005 Express版本中,如果我输入一个长度为128个字符的数据库名称,它总会抱怨

无法创建默认日志文件,因为名称太长

为了确保我能够成功创建数据库,我发现我需要将最大限制设置为124个字符.

我现在的问题是,对于所有不同Windows操作系统上的所有SQL Server版本,是否有124个字符限制?

database sql-server sql-server-2005

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

OpenID PAM模块

我正在寻找一个可以使用OpenID进行身份验证的PAM模块.我的想法是我想使用我的Gmail帐户和密码登录我的Linux机箱.我发现谷歌代码中有一个开源项目似乎正在做我想要的事情,但我没有看到任何代码可供下载.

我看到有很多例子或实现,但它们都是关于网络应用程序的.世界上是否有任何非基于Web的OpenID应用程序?在技​​术上是否可以制作非基于Web的OpenID应用程序?我天真地认为它应该是可能的.我可以模拟浏览器发送给OpenID提供程序的任何数据包并返回结果.只要我的Linux机箱连接到Internet,我就可以使用我的OpenID登录.

感谢有关如何制作OpenID PAM模块的任何意见,建议或指示.

谢谢!

linux security openid authentication pam

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

我可以模拟使用表单身份验证进行身份验证的客户端并建立与SQL Server的可信连接吗?

这是我一直在努力做的事情

使用表单身份验证和活动目录成员身份构建ASP.NET MVC 3应用程序.Web服务器和数据库是不同的物理服务器,因此是双跃点.

我认为答案是这篇关于约束委派和协议转换的旧文章?到目前为止,我还没有能够使用该技术.

在生产设置中部署到Windows 2008(IIS7)之前,我正在从我的DEV机器(Windows 7,IIS7)中为Web服务器测试这个.Windows 2008会有所作为吗?

什么有效,什么失败

我可以使用表单身份验证和AD成员身份登录.这似乎工作得很好.当我尝试使用此代码进行数据库调用时:

public void AsUser(Action action)
    {
        using (var id = new WindowsIdentity(User.Identity.Name + @"@example.com"))
        {
            WindowsImpersonationContext context = null;
            try
            {
                context = id.Impersonate();
                action.Invoke();
            }
            catch (Exception ex)
            {
                // ex.Message is The type initializer for System.Data.SqlClient.SqlConnection threw an exception
                // buried inner exeption is Requested registry access is not allowed
            }
            finally
            {
                if (context != null)
                {
                    context.Undo();
                }
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

它失败了一个例外,让我相信我在本地DEV服务器上设置了问题.内在的例外是Requested registry …

forms-authentication active-directory trustedconnection asp.net-mvc-3

11
推荐指数
1
解决办法
2444
查看次数

避免基于递增键创建聚簇索引

我从mssqlcity.com得到了这个提示.但是,我无法理解它的解释.

避免基于递增键创建聚簇索引

例如,如果表具有声明为IDENTITY的代理整数主键并且在此列上创建了聚簇索引,则每次将数据插入此表时,行都将添加到表的末尾.当添加许多行时,可能发生"热点".当许多查询尝试同时在同一区域中读取或写入数据时,会出现"热点"."热点"导致I/O瓶颈.注意.默认情况下,SQL Server为主键约束创建聚簇索引.因此,在这种情况下,您应该显式指定NONCLUSTERED关键字以指示为主键约束创建非聚簇索引.

在我阅读之前,我想如果我选择一个本质上是随机的列,那就不正确了,因为这会在添加新行时导致不必要的页面重定位.所以,我认为使用排序列是可取的.

在阅读了这个提示之后,我认为它试图说我们并不是真的想要使用直线排序列作为我们的聚簇索引,因为这些写入密集型应用程序会出现I/O瓶颈.

我真的不明白他们所谈论的I/O瓶颈的原因.他们是说共享同一页面的太多操作会减慢磁盘操作的速度吗?这是怎么发生的?有人可以向我解释一下吗?

sql sql-server indexing performance

11
推荐指数
1
解决办法
3171
查看次数

由sosex.mbp或sosex.mbm设置的断点不起作用

我正在使用VS.NET 2010.我编译了一个非常简单的.NET 4.0应用程序.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace TestWindbg
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.ReadLine();
            Func1();
        }

        static void Func1()
        {
            int i = 0;
            int j = i + 2;
            Console.WriteLine(j);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我打开windbg 6.12.0002.633编译的可执行文件.键入以下命令以加载sosex

.loadby sosex clr
Run Code Online (Sandbox Code Playgroud)

然后,键入以下命令以设置断点

!mbm TestWindbg.Program.Func1
!mbp Program.cs 16
Run Code Online (Sandbox Code Playgroud)

然后运行该程序.没有一个破发点被击中.

任何的想法?

*编辑*

在这里,我根据Marc的要求粘贴有关我的环境的更多详细信息

0:004> !mbl
1 eu: disable *!TESTWINDBG.PROGRAM.FUNC1 ILOffset=0: pass=1 oneshot=false thread=ANY
2 eu: disable Program.cs, line 16: pass=1 oneshot=false thread=ANY
0:004> .chain
Extension …
Run Code Online (Sandbox Code Playgroud)

.net c# debugging windbg sosex

11
推荐指数
1
解决办法
1678
查看次数

windbg中"!heap -h"输出中"Internal"的含义是什么?

我正在关注这个stackoverflow帖子 "!heap -flt -s xxxx"windbg命令中的不同列代表什么

我试图了解为其中一个耗费大量内存的堆打印出来的信息.

我可以理解大多数列,但在我的windbg上,我看到一个额外的列.我的大部分作品都标记为内部.我想知道这意味着什么.我做到了!gflags +ust.所以,我可以看到用于进行内存分配的调用堆栈.我可以在大多数条目上执行此操作,但标记为内部的条目除外.

什么是内部是什么意思?它与LFH的实施有关吗?如果这是LFH的内部实现,这些内部堆条目将如何以及何时返回到空闲列表?它现在无缘无故地抬起我的记忆.

以下是!heap -h 0000000002330000供您参考的输出.

Index   Address  Name      Debugging options enabled
  8:   02330000 
    Segment at 0000000002330000 to 0000000002340000 (00010000 bytes committed)
    Segment at 00000000032b0000 to 00000000033b0000 (00100000 bytes committed)
    Segment at 00000000065a0000 to 00000000067a0000 (00200000 bytes committed)
    Segment at 00000000067a0000 to 0000000006ba0000 (00400000 bytes committed)
    Segment at 0000000006d80000 to 0000000007580000 (006f2000 bytes committed)
    Flags:                08001002
    ForceFlags:           00000000
    Granularity:          16 bytes
    Segment …
Run Code Online (Sandbox Code Playgroud)

c++ windows heap memory-leaks windbg

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

在Windows 7上解析NetBIOS名称

根据此链接,从Windwos Vista开始不再支持NetBIOS.果然,我再也看不到网络属性中的任何NetBIOS名称了.

但是,当我在Windows 7上编写代码时,我仍然在许多地方遇到NetBIOS名称.例如

  1. 我仍然可以使用"MYDOMAIN\Harvey"来登录我的机器,我相信MYDOMAIN是一个NetBIOS名称.
  2. 环境变量COMPUTERNAME和USERDOMAIN仍然是NetBIOS名称.我期待在这里看到DNS名称
  3. 从我的SQL Server Management Studio发出的我的SQL Server实例名称仍然类似于MYMACHINE\Instance1.

我猜微软仍然保留了一些它的向后兼容性.我想了解Windows 7如何将NetBIOS名称解析为IP地址.我发现这篇文章解释了NetBIOS名称解析的工作原理,但我担心在Windows 7中不再适用.至少我没有WINS服务器.

我的最后一个问题是如何以编程方式执行NetBIOS名称解析,最好是在C#中.我可以使用PInvoke.

UDAPTE

Tridus是对的.我可以使用System.Net.Dns.GetHostAddresses("hostname")来解析NetBIOS名称.我用反射器看看引擎盖下发生了什么.它从ws2_32.dll调用gethostbyname()

在这里,它解释了gethostbyname()将执行NetBIOS名称解析.

  1. 检查本地主机名是否匹配名称.
  2. 检查Hosts文件以查找匹配的名称条目.
  3. 如果配置了DNS服务器,请进行查询.
  4. 如果未找到匹配项,请尝试NetBIOS名称解析.

关于此链接中不支持的NetBIOS之谜,我认为这只是意味着不支持API. ServerFault中的人认为Windows 7仍然支持NetBIOS.

c# windows protocols netbios

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

使用备用凭据使用VBscript安全地进行LDAP对象操作

我知道使用具有显式凭据的ADsDSOobject连接到AD对象以读取属性,列表成员等.用于操作这些对象的GetObject("LDAP // ...")方法(添加组成员,更改属性)等等),但有没有办法用显式凭证操纵属性和成员资格?

我指的第一种方法是......

Set conn = Server.CreateObject("ADODB.Connection")
Set cmd = Server.CreateObject("ADODB.Command")
conn.Provider = "ADsDSOobject"
conn.Properties("User ID") = AD_Username
conn.Properties("Password") = AD_Password
conn.Properties("Encrypt Password") = True
conn.Open "Active Directory Provider"
Set cmd.ActiveConnection = conn
Run Code Online (Sandbox Code Playgroud)

但据我所知,执行诸如向域组添加用户等任务的脚本示例都不能使用此方法.有办法以某种方式这样做吗?

vbscript ldap active-directory

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

Powershell:如何设置读/写服务主体名称AD权限?

在Powershell中,如何设置读/写服务主体名称AD用户权限?

通常在我的构建过程中,我使用ADSIedit导航到该对象,然后通过所有安全选项卡下来选中旁边的复选标记:

  • 阅读服务主体名称
  • 写服务主体名称

但是通过ADSIedit导航可能需要很长时间,因此我正在尝试编写该过程的脚本.如果我有一个PowerShell LDAP绑定创建了一个新用户,我如何使用PowerShell为这个用户帐户设置这两个属性?

以下是我的安装脚本可能相关部分的被破解的代码片段:

$strDomain = "dc=my,dc=com"
$objDomain = [ADSI] "LDAP://" + strDomain 
$strSCCMSQLPW = Read-Host -assecurestring "Please enter a password for the " + $strSCCMSQL + " account: "
New-ADUser -SamAccountName $strSCCMSQL + -Name $strSCCMSQL -AccountPassword $strSCCMSQLPW -Enabled $true -Path $strUsersOU + "," + $strDomain -PasswordNeverExpires $true
Run Code Online (Sandbox Code Playgroud)

powershell active-directory

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

文本框中显示意外的字符

我有一个非常简单的.NET程序.只是在文本框中写一个字符串.我的字符串末尾出现一个奇怪的字符.

在此输入图像描述

这只发生在我的32位XP盒子上.相同的程序在另一台64位Windows 2008机器上运行正常.

该程序就像这样简单.

    private void Form1_Load(object sender, EventArgs e)
    {
        textBox1.Text = "Hello\n\0\0\0\0\0\0";
    }
Run Code Online (Sandbox Code Playgroud)

我知道在字符串的末尾添加\ 0很奇怪,我可以在应用到文本框之前修剪它们.文本框设置为允许多行.

出于好奇,有人知道问题的来源吗?两台机器都安装了.NET 3.5 SP1.它们都设置为具有相同的区域设置.我怀疑它是否与32位或64位有关.

UPDATE

感谢@DBM和@Andrew.奇怪的角色来自\n但与\ 0无关.现在,听起来Windows 2008可以理解\ r \n和\n.任何人都可以证实吗?

.net c# winforms

4
推荐指数
2
解决办法
967
查看次数

升级时保留注册表设置

我正在使用WiX 3.0.我正在尝试在升级时预先设置所有注册表设置.

我找到了以下链接 http://www.mail-archive.com/wix-users@lists.sourceforge.net/msg28844.html

我更喜欢使用Property和RegistrySearch方法而不是自定义操作方法,因为我觉得它看起来更简单.

不幸的是,这种方法对我来说效果不佳.我的项目有一些DWORD和SZ类型的注册表值.对于所有DWORD类型的注册表值,它在前面附加一个#.我检查了WiX推荐手册.这就是RegistrySearch的工作方式.

因此,升级后,结果是我的所有DWORD类型注册表都更改为SZ.该值看起来相同,只是前面附加了#.例如,我在注册表值"LogLevel"中获得值为DWORD的值2.升级后,我在注册表值"LogLevel"中获得值"#2",类型为SZ在同一位置.

这是代码片段

<Property Id='LOG_LEVEL' Value='Information'>
  <RegistrySearch Id='LogLevelRegistry' Type='raw' Root='HKLM' Key='Software\Company\Product' Name='LogLevel' Win64='$(var.Win64)'/>
</Property>

<Component Id="RegistryKey">
    <RegistryKey Root='HKLM' Key='Software\Company\Product' Action='createAndRemoveOnUninstall'>
      <RegistryValue Type='int' Name='LogLevel' Value='[LOG_LEVEL]'/>
    </RegistryKey>
</Component>
Run Code Online (Sandbox Code Playgroud)

我想知道是否有任何字符串函数可以帮助我修复LOG_LEVEL属性中的"#"然后再放回去.或者在升级时是否有更智能的方法来保留注册表项?我应该采用自定义操作方法吗?

registry installer windows-installer wix wix3

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

如果两个域都在同一个林中,是否可以将一个域中的用户分配到另一个域中的组?

假设有一个域 A,用户在 DCa 中。还有另一个域 B 在 DCb 中有组。但是 DCa 和 DCb 都在林 F 中。是否可以将域 A 中的用户分配到域 B 中的组?

active-directory

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