标签: connection-string

SQL Server:修改"应用程序名称"属性以进行审计

由于我们没有将应用程序的用户实现为SQL Server中的用户,因此当应用程序服务器连接到数据库时,每个应用程序始终使用相同的凭据连接到每个数据库.

这提出了审计问题.使用触发器,我们希望存储每个更新,插入和删除以及将每个更新属于特定用户.一种可能的解决方案是向每个表添加"按用户更新"列,并每次更新.这意味着每个表上都有一个新列,每个存储过程都有一个新参数.这也意味着您只能进行软删除.

取而代之的是,我建议使用连接字符串的Application Name属性,并使用触发器内的App_Name()属性读取它.我用一个简单的应用程序测试了它,它似乎工作(格式可能如此:App = MyApp | User = 100).

对你们这个问题是,这是一个坏主意,你有一个更好的主意吗?

sql-server audit triggers connection-string

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

app.config文件中有多个SQL Server连接字符串

我有兴趣在Windows窗体应用程序中显示N个单选按钮列表,供用户选择目标数据库服务器.我想在app.config文件中添加SQL Server连接字符串,因此它们在运行时由应用程序读取,并在窗体中作为单选按钮呈现.

起初我想过使用分隔符来分隔连接

  <appSettings>
    <add key="ConnectionString" value="connection1|user id=user;password=123;server=10.0.0.1;database=myDatabase;connection timeout=30|connection2|user id=user;password=123;server=10.0.0.2;database=myDatabase;connection timeout=30"/>
</appSettings>
Run Code Online (Sandbox Code Playgroud)

然后拆分键值对.

是否有可能以不同的方式做到这一点?

c# sql-server connection-string app-config

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

什么是TNS:Oracle上下文中的监听器?

Borderline ServerFault问题,但我想先在这里尝试一下,因为我过去对Oracle的问题很满意.

我正在尝试从PHP连接到oracle数据库,我收到以下错误.

ORA-12505: TNS:listener does not currently know of SID given in connect descriptor
Run Code Online (Sandbox Code Playgroud)

这是PHP报告的错误,以及Oracle的listener.log中显示的错误.

我当前的问题是解决这个错误.我想回答的一个更大的问题是Oracle连接模型是如何工作的?

这是在我的本地Windows机器上运行的开发环境中,并且一直在运行.不幸的是,环境被移交给我(我没有设置它),谁的人没有设置它是不可用的帮我调试.

如果我在MySQL或PostgreSQL(我更熟悉的两个系统)中遇到类似的错误,我会检查以确保数据库进程正在运行,然后尝试使用用户名/密码/手动连接到数据库连接字符串.不幸的是,我不熟悉Windows上的Oracle工具(除了SQL Developer),我不知道什么是TNS:监听器或SID在Oracle的上下文中(我有一些模糊的想法,但模糊的想法很少有帮助你正在调试这样的东西)

任何一般建议将不胜感激.

每条评论的更新:

我的tnsnames.ora文件中有很多内容,相关条目是

OBS2 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = steel-ae39650)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = OBS2)
    )
  )
Run Code Online (Sandbox Code Playgroud)

当我运行时,这不会反映在实例列表中

    LSNRCTL> services
Run Code Online (Sandbox Code Playgroud)

所以我认为我的下一个问题是,如何尝试手动启动OBS2实例?

oracle tns tnsnames connection-string

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

管理调试和释放连接字符串

在.NET/SQLServer应用程序中管理调试和释放连接字符串的好方法是什么?

我有两个SQL Server,一个生产和一个构建/调试,我需要一种在部署ASP.NET应用程序时在两者之间切换的方法.

目前我只是将它们存储在web.config中并对其中一个进行注释,但是在部署时容易出错.

c# vb.net asp.net connection-string

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

连接字符串 - 不支持关键字:'初始目录'

我使用Webmatrix.data的数据库实体来创建数据库连接,但它不喜欢我的连接字符串.我从MVC ASP.net运行它.

我已经尝试将其更改为服务器/数据库,但仍然是错误相同.我哪里错了?

        using (var db = Database.OpenConnectionString(@"Data Source=MY-HP\Serv;Initial Catalog=MyDBSQL;User ID=sa;Password=password"))
        {
            var items = db.Query("SELECT * FROM TaskPriority");
        }
Run Code Online (Sandbox Code Playgroud)

异常详细信息:System.ArgumentException:不支持关键字:'initial catalog'.

.net asp.net asp.net-mvc connection-string database-connection

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

未安装发布所需的Web发布扩展

我想通过以下链接按照教程将ASP.NET Web应用程序部署到Windows Azure网站:https://www.windowsazure.com/en-us/develop/net/tutorials/get-started/ After下载公共配置文件,这是一个".PublishSettings"文件,我回到Visual Studio并在解决方案资源管理器中右键单击该项目,然后从上下文菜单中选择发布,如教程所述.但是,警告框跳了起来,它向我显示"未安装发布所需的Web发布扩展.您可以从http://go.microsoft.com/fwlink/?LinkID=208120安装它."

我已经安装了"Windows Azure SDK for .NET(VS 2012)",我也尝试将其卸载并再次安装,但同样的问题仍然存在.

谁知道如何解决这个问题?我真的很感激.

deployment publish connection-string azure asp.net-mvc-4

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

将自定义连接字符串注入Entity Framework的DbContext

我想在我的EF上下文中注入一个自定义连接字符串,而不是在我的web.config中使用连接字符串.我们的想法是将所有与数据库相关的逻辑从我的MVC项目移到一个单独的层.我还希望这个层负责正确的连接字符串而不是我的Web应用程序.

当前使用上下文的服务正在调用默认构造函数:

using (var context = new MyDbContext()) {
    //...
}
Run Code Online (Sandbox Code Playgroud)

默认构造函数在内部DbContext使用以下连接字符串的名称进行调用web.config:

public partial class MyDbContext : DbContext
{
    public MyDbContext()
        : base("name=MyDbContext")
    {
    }

    //...
}
Run Code Online (Sandbox Code Playgroud)

为了注入我的自定义连接字符串,我需要一个重载的构造函数,它将连接字符串作为参数.不幸的是,没有提供这样的构造函数.

很明显,在MyDbContext类中手动添加构造函数重载将是一个非常糟糕的主意,因为这个类是自动生成的,并且很快就会被覆盖.我们不再谈论这个,这是禁止的.期.

由于MyDbContext是一个部分类,可以在一个单独的类文件中添加额外的构造函数partial class MyDbContext,但这看起来也很臭.我不知道为什么,但我的大脑说不好主意.

经过一些调查后我发现,通过编辑T Model.Context.tt#模板,可以告诉EF包含这个额外的构造函数,这是C#和一些模板标记的混合.这是原始构造函数:

public <#=Code.Escape(container)#>()
    : base("name=<#=container.Name#>")
{
<#
    WriteLazyLoadingEnabled(container);
#>
}
Run Code Online (Sandbox Code Playgroud)

显然很容易添加类似的逻辑来生成包含连接字符串的重载构造函数:

public <#=Code.Escape(container)#>(string nameOrConnectionString)
    : base(nameOrConnectionString)
{
<#
    WriteLazyLoadingEnabled(container);
#>
}
Run Code Online (Sandbox Code Playgroud)

我试过这个并注意到,重新生成模型类和从DB更新模型都不会影响T4模板,因此额外的构造函数将始终存在.好!乍一看,这看起来是一个合适的解决方案,但......

这是我的问题:这真的是一个很好的解决方案吗?

让我们再次比较三个选项:

  1. 编辑自动生成的类(好吧,我们同意忘了这个)
  2. 在部分类文件中添加构造函数
  3. 编辑T4模板以告知EF生成其他构造函数 …

connection-string entity-framework-4

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

登录前握手期间发生错误

在将此标记为重复之前,请完整阅读.

在我正在调试的项目中,我收到一个SqlException,说明如下:

附加信息:已成功与服务器建立连接,但在登录前握手期间发生错误.(提供者:SSL提供者,错误:0 - 等待操作超时.)

这发生在调试会话期间,前一个会话只在几秒钟之前执行而没有问题.自初始异常以来,我无法连接到此项目中的数据库服务器. SqlConnection.Open()方法调用抛出异常.

的背景

这不是我第一次收到这个.在此之前,我花了两个星期的努力,最终为它启动了微软的支持票.在那个例子中,事实证明连接字符串上的ApplicationName属性太长(我们使用的是完全限定的程序集名称)并缩短它可以缓解问题.

这一次,有

  • 没有提供ApplicationName值
  • WinSocks处于默认状态
  • 防病毒(ESET)被禁用,不是问题.
  • 工作和非工作调试会话之间没有安装任何内容

最后,我突发奇想,创建了一个新项目,其唯一目的是连接到同一个SQL服务器.我将连接字符串从非工作项目复制到新项目中并连接.是否存在某种每个项目的连接缓存?在Clean> Rebuild以及Visual Studio和Windows的重启中幸存下来的东西呢?

相关守则

    public SqlConnection OpenSqlConnection(string connectionString)
    {
        var conn = new SqlConnection(connectionString);
        conn.Open();
        _connectionString = connectionString;
        var sb = new SqlConnectionStringBuilder(_connectionString);
        _server = sb.DataSource;
        _database = sb.InitialCatalog;
        return conn;
    }
Run Code Online (Sandbox Code Playgroud)

传入的连接字符串是从应用程序中其他位置的SqlConnectionStringBuilder输出的.连接字符串类似于:"Data Source=SERVER;Initial Catalog=DATABASE;Integrated Security=True;Connect Timeout=60"

.net c# sql-server connection-string database-connection

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

使用System.Data.SQLite,如何使用相对路径在连接字符串中指定数据库文件

想要在不同的服务器上部署我的项目,我希望能够使用相对路径指定连接字符串.我似乎无法让它工作,并想知道它是否有一些技巧......?

c# sqlite connection-string system.data.sqlite

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

实体框架核心通过SSH隧道连接到MSSQL数据库

我看过很多帖子都在问类似的问题,但没有一个问题解决了我的问题.

我的设置如下:

  • 带数据库的远程主机:可以访问 127.0.0.1:1433
  • SSH隧道: L5000 -> 127.0.0.1:1433

当我127.0.0.1,5000在SQL Management Studio中输入服务器名称时,我可以连接到我想要的数据库.

如果相应地调整我的连接字符串并启动我的应用程序,我会得到以下异常:

Type       : SqlException
Message    : A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)
Source     : Core .Net SqlClient Data Provider …
Run Code Online (Sandbox Code Playgroud)

c# sql-server connection-string database-connection entity-framework-core

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