【发布时间】:2015-11-02 22:27:31
【问题描述】:
我有一个使用Entity Framework Model First 的项目。数据源在互联网上,我需要它使用网络/网络代理来工作。我用谷歌搜索了它,但我找不到任何有用的结果,因为所有结果都是关于 EF's Entities Proxies 的。
一些有用的代码:
连接字符串:
<add name="ConnectionName" connectionString="metadata=res://*/Latin.csdl|res://*/Latin.ssdl|res://*/Latin.msl;provider=System.Data.SqlClient;provider connection string="data source=mssqlserver.server.com;initial catalog=DatabaseName;user id=admin;password=adminPass;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
用法:
static void Main(string[] args)
{
//set the proxy
var proxy = new WebProxy("109.32.24.24", 808);
proxy.Credentials = new NetworkCredential("", "");
WebRequest.DefaultWebProxy = proxy;
var db = new ContextName();
if (db.QNames.First().Name == "Testing")
{
Console.WriteLine("Success Connection!");
Console.ReadKey();
}
}
这会引发网络连接错误。
编辑
网络拥有的代理通过 http 协议运行。我知道http is the protocol you normally use to browse the web with, you do not usually connect to databases with it 但它是唯一可用的,这个问题就是关于它的。您可以将 Web 代理用于多个 .net 连接,甚至 Web 服务,而我的问题是关于将它与 EF 一起使用,我无法使其正常工作。最后一个解决方案可能是使用像Proxifier 这样的程序并将所有计算机的连接重定向到指定的网络代理,但这个想法是让它更具可配置性。
【问题讨论】:
-
@flindeberg 说了什么。您需要哪种类型的代理服务器才能连接到互联网?它是 SOCKS 代理吗?
-
@flindeberg 和#CodeCaster 抱歉耽搁了。希望我的编辑有助于找到答案。这就是我正在尝试做的事情,但找不到方法。
-
@CodeCaster
Why do you think you need this?好吧,访问互联网的唯一方法是使用该代理,并且数据库在互联网中。我真的觉得这个 cmets 没用,如果你不打算帮忙,请停止提出这种问题。谢谢 -
您的问题不清楚,也没有什么意义,这就是我要求澄清的原因。你会发现我的评论毫无用处,但那是你的损失。 :) 我问这些问题不是为了惹恼你,而是为了让你的问题可以回答。目前无法回答。
-
好吧@CodeCaster,我真的不明白为什么这个问题不清楚,我想要的很简单:将EF应用程序连接到互联网上的一个SQL服务器,唯一的限制是应用程序可能在无互联网网络中运行,这是获取互联网的唯一方法是使用 Http 代理。我认为这是不可能的,请回答,并尝试解释原因。我会很感激的。
标签: c# .net entity-framework proxy http-proxy