此标记指的是Microsoft版本的Visual Studio系列软件开发产品,2008版本。除非您有关于Visual Studio的特定问题,否则不要使用此标记 - 而不仅仅是编码问题。问题应该特定于2008版的Visual Studio。
水晶报表2008:如何从rpt文件中提取“报表自定义函数”内容
我正在尝试改进一个实用程序,该实用程序基本上扫描我们所有的报告并在所有数据库、表格、报告公式文本等上构建(元?)报告。该实用程序做得非常出色...
如何获取 Visual Studio 2008 中未绑定键盘快捷键的列表?
我正在寻找未与 Visual Studio 2008 中的任何内容绑定的键盘快捷键和连接线。我会选择网络上某处的 uber 列表,甚至是可能将它们吐出的宏或工具。 ...
如何在 Visual Studio VB.NET 中禁用区域折叠或展开所有区域?
在 Visual Studio C# (2008) 中,Ctrl+M+L 展开所有区域。 菜单中还有一个设置: 工具 -> 选项 -> 文本编辑器 -> C# -> 高级 在文件打开期间不崩溃。我明白了...
Visual Studio 是否有会话管理器插件可让您保存已打开的文件列表?
Visual Studio 是否有一个插件可以让您保存当前在 Visual Studio 中打开的文件/选项卡列表,就像 Opera 内置的会话管理器一样? 我不是说我怎样才能...
我有一个在Linux(Fedora 6-13)中开发的应用程序,它使用MITK,ITK,VTK,QT3。 我安装了VS2008,还安装了MITK、ITK、VTK、QT3。 当我运行该应用程序时,它工作正常,但是每次交流后...
上一个问题展示了一种打印字符串的好方法。答案涉及va_copy: std::string 格式(const char *fmt,...); { va_list ap; va_start(ap,fmt); std::string buf = v...
我需要在MFC中向单选按钮添加位图图像。我不知道该怎么做 谁能告诉我该怎么做。
我对 unsigned char 很好奇。我不小心对 unsigned char 进行了减法运算。我知道我不应该这样做。但我有点好奇特定答案是如何得出的。可以
这是我在文本框中的公式 =字段!TotalCost2.Value+字段!TotalCost1.Value 现在我想在公式中添加 £,以便输出为 300英镑 预先感谢!
mt.exe:一般错误 c101008d:无法将更新的清单写入文件资源...访问被拒绝
即使我构建一个新的C++项目并尝试构建一个发布文件,我也经常遇到这个问题。 我使用 Visual studio 2008。可能导致此问题的一件事是我的代码保存在服务器磁盘上...
如何在 Visual Studio 2008 中对 VB.NET 项目使用批量构建
在 Visual Studio 2008 中,我看不到 VB.NET 项目的“批量构建”选项(对于 C++ 项目)。 我是 VB.NET 的新手,但是它还有其他选项来进行批量构建吗...
Ajaxtoolkit:cascadingdropdown - 下拉菜单在 IE 中完美运行,但在 asp.net-C# 中的其他浏览器中不起作用
我最近加入了新公司,他们在VS2008中使用旧的asp.net。它已经很旧了。我在修改过程中遇到的问题之一是他们使用的是Ajaxtoolkit3.0 cascadingdropdown。下拉菜单 (
从我的 VB.NET 2008 项目访问 MySQL 数据库
我用VB.NET开发了一个项目。在这个项目中,我想使用驻留在我的 WEB 服务器中的 MySQL 中的数据。 我可以与本地主机的 MySQL 服务器通信,但无法与...通信
为什么 FileSystemWatcher 检测不到 Visual Studio 中的更改?
我制作了一个小型应用程序,可以响应文件夹中文件的更改。但是当我在 Visual Studio 2008 中编辑该文件时,它从未检测到任何内容。如果我在记事本中编辑文件,则每个...
获取 vcproj 文件中 $(ProjectDir)、$(SolutionDir) 的值
是否可以在 Visual Studio 之外以编程方式获取 $(ProjectDir) 或 $(SolutionDir) 的值?我的情况是我需要将 vcproj 文件作为文本文件读取并获取其属性,如
导出 Visual Studio 模板错误:“无法读取导出的文件”
将 Visual Studio 项目导出到模板(文件/导出模板...)时,单击“完成”按钮时出现以下错误: 无法读取以下导出文件 ...
我在使用 Visual Studio 2008 网站和 SharePoint/MOSS 2007 时遇到问题。我们之前在 SharePoint 结构下放置了 2 个 Web 应用程序项目,但由于项目的性质...
我在构建程序时遇到了一些麻烦。我正在使用 Visual Studio 2008 处理 Windows 7 professional 32 位。我有 Cuda SDK,并且我的项目设置了 cudart.l 的所有链接...
我的 wsdl 在地址位置放置了错误的域,如何修复? - - 我的 wsdl 在地址位置放置了错误的域,如何修复它? - <wsdl:service name="XWebService"> - <wsdl:port name="XServiceSoap" binding="tns:XWebServiceSoap"> <soap:address location="https://machine.wrongdomain.com.br/webservices/MapleStoryWebService.asmx" /> </wsdl:port> - <wsdl:port name="XWebServiceSoap12" binding="tns:XWebServiceSoap12"> <soap12:address location="https://machine.wrongdomain.com.br/webservices/XWebService.asmx" /> </wsdl:port> - <wsdl:port name="XWebServiceHttpGet" binding="tns:XWebServiceHttpGet"> <http:address location="https://machine.wrongdomain.com.br/webservices/MapleStoryWebService.asmx" /> </wsdl:port> - <wsdl:port name="XWebServiceHttpPost" binding="tns:XWebServiceHttpPost"> <http:address location="https://machine.wrongdomain.com.br/webservices/XWebService.asmx" /> </wsdl:port> </wsdl:service> 真正的域名就像https://machine.goodDomain.com.br 该地址取自用于访问 WSDL 的 URL。如果它与您想要实际提供服务的服务器不同,那么您可以通过创建一个扩展 SoapExtensionReflector 的类来更改它。以下是有关如何更改 URL 的示例文章: http://blogs.msdn.com/kaevans/archive/2005/11/16/493496.aspx 另一种选择是使用 IIS URL 重写模块 (http://www.iis.net/downloads/microsoft/url-rewrite) 首先 - 捕获 XWebService.asmx?WSDL 的输出并将其保存为 HTML 文件(例如 wsdl.htm)。 编辑此文件并将位置更改为备用地址 ...来自 thishost.domain.com: - <wsdl:port name="XWebServiceHttpPost" binding="tns:XWebServiceHttpPost"> <http:address location="http://thishost.domain.com/XWebService.asmx" /> </wsdl:port> ...至 thathost.domain.com: - <wsdl:port name="XWebServiceHttpPost" binding="tns:XWebServiceHttpPost"> <http:address location="http://thathost.domain.com/XWebService.asmx" /> </wsdl:port> 在 IIS 中 - 在网站/虚拟功能视图中找到 URL 重写图标。然后单击 添加规则 并选择 入站规则 - 空白规则。 使用规则 - 适当命名并设置将接收 WSDL 请求的 Web 服务 URL 的模式匹配。对于正则表达式: (.*)XWebservice.asmx 对于条件,将 {QUERY_STRING} 与 WSDL 以及 {REQUEST_METHOD} 与 GET 匹配。 对于Action - 将其设置为Rewrite(因此这对客户端来说是透明的)并选择我们之前保存的文件(wsdl.htm)。 这还会向 web.config 的 system.webServer 部分添加一个新的 rewrite 部分 <system.webServer> <rewrite> <rules> <rule name="WSDL Rewrite" stopProcessing="true"> <match url="(.*)XWebService.asmx" /> <conditions> <add input="{QUERY_STRING}" pattern="WSDL" /> <add input="{REQUEST_METHOD}" pattern="GET" /> </conditions> <action type="Rewrite" url="wsdl.htm" /> </rule> </rules> </rewrite> </system.webServer> 为什么不手动将 WSDL 文件中的地址编辑为应有的地址呢? 如果 WSDL 是由其他工具生成的,请告诉我们它是如何生成的,也许我们可以提供帮助。否则,没有法律禁止修改生成的文件以满足您的需要。如果原始用户环境的 WSDL 的问题只是 URL 错误,那么直接修改 URL 是完全合法的。 最初的反应是正确的。 WSDL 中的默认 URL 取决于用于访问 WSDL 的 URL。 我的团队过去处理更改服务 URL 的方式(例如,从开发环境过渡到测试或生产环境)是使用 wsdl.exe 为您的 Web 服务生成代码代理(代理实际上是通过以下方式创建的)也可以是 Web 或服务引用,但默认情况下不会显示在 Visual Studio 中),您可以编辑生成的代理类以从 (??) 任何您想要存储它的位置(数据库、配置文件等)读取服务的 URL。 解决方案很少,我会按照从简单到准确的顺序进行排序。 :) 不用担心 WSDL 中的 URL。 只需在客户端使用 Url 属性,就像在这种情况下: public class MyWebService : RemoteService { public MyWebService() : base() { Url = ConfigurationManager.AppSettings["MyServiceCustomUrl"]; } } 明显的缺点:很可能您将无法使用生成的 html(我的意思是为 Web 方法生成的表单)正确测试服务。 使用自定义wsdlHelpGenerator。 我没有测试这个解决方案,但乍一看,如果您基于原始的 DefaultWsdlHelpGenerator.aspx 创建自己的解决方案,它看起来很简单(您可以在 C:\Windows\Microsoft.NET\Framework* 文件夹中找到它) ,就我而言,它是 C:\Windows\Microsoft.NET\Framework 4.0.30319\Config\DefaultWsdlHelpGenerator.aspx)。 使用soapExtensionReflectorTypes。它将允许您使用 HttpSoap 协议地址执行任何操作。 创建一个处理程序(下面的示例将 http 更改为 https): public class HttpsReflector : SoapExtensionReflector { public override void ReflectMethod() { // nothing to override } public override void ReflectDescription() { ServiceDescription description = ReflectionContext.ServiceDescription; foreach (System.Web.Services.Description.Service service in description.Services) { foreach (Port port in service.Ports) { foreach (ServiceDescriptionFormatExtension extension in port.Extensions) { if (extension is SoapAddressBinding binding) { binding.Location = binding.Location.Replace("http://", "https://"); } } } } } } 在 web.config 中注册: <system.web> <webServices> <soapExtensionReflectorTypes> <!-- Required to replace http in addresses for HttpSoap protocol --> <add type="MyWebServices.WsdlFixHttp.HttpsReflector, MyWebServices"/> </soapExtensionReflectorTypes> </webServices> </system.web> 缺点:无法控制 HttpPost/HttpGet 协议。 实现IIS重写模块。它将允许您修改服务产生的任何输出。可以与#3一起使用。 创建2个类,流装饰器: public class StreamWatcher : Stream { private readonly Stream _base; private readonly MemoryStream _memoryStream = new MemoryStream(); public StreamWatcher(Stream stream) { _base = stream; } public override void Flush() { _base.Flush(); } public override int Read(byte[] buffer, int offset, int count) { return _base.Read(buffer, offset, count); } public override void Write(byte[] buffer, int offset, int count) { _memoryStream.Write(buffer, offset, count); _base.Write(buffer, offset, count); } public override string ToString() { return Encoding.UTF8.GetString(_memoryStream.ToArray()); } public override bool CanRead => _base.CanRead; public override bool CanSeek => _base.CanSeek; public override bool CanWrite => _base.CanWrite; public override long Seek(long offset, SeekOrigin origin) => _base.Seek(offset, origin); public override void SetLength(long value) => _base.SetLength(value); public override long Length => _base.Length; public override long Position { get => _base.Position; set => _base.Position = value; } } 和模块: public class WsdlFixHttpModule : IHttpModule { public void Init(HttpApplication context) { context.EndRequest += (s, e) => OnEndRequest(s, e); context.BeginRequest += (s, e) => OnBeginRequest(s, e); } private void OnBeginRequest(object sender, EventArgs e) { HttpContext httpContext = HttpContext.Current; if (httpContext.Request.Url.Query.Equals("?WSDL", StringComparison.InvariantCultureIgnoreCase) || IsAsmxGetRequest(httpContext)) { httpContext.Response.Filter = new StreamWatcher(httpContext.Response.Filter); } } private void OnEndRequest(object sender, EventArgs e) { HttpContext httpContext = HttpContext.Current; string oldValue = "", newValue = ""; bool replacementRequired = false; if (httpContext.Request.Url.Query.Equals("?WSDL", StringComparison.InvariantCultureIgnoreCase)) { oldValue = ":address location=\"http://"; newValue = ":address location=\"https://"; replacementRequired = true; } else if (IsAsmxGetRequest(httpContext)) { oldValue = "<form target=\"_blank\" action='http://"; newValue = "<form target=\"_blank\" action='https://"; replacementRequired = true; } if (replacementRequired) { string wsdl = httpContext.Response.Filter.ToString(); wsdl = wsdl.Replace(oldValue, newValue); httpContext.Response.Clear(); httpContext.Response.Write(wsdl); httpContext.Response.End(); } } private static bool IsAsmxGetRequest(HttpContext httpContext) { return httpContext.Response.ContentType == "text/html" && httpContext.Request.CurrentExecutionFilePathExtension.Equals(".asmx", StringComparison.InvariantCultureIgnoreCase) && httpContext.Request.HttpMethod == "GET"; } public void Dispose() { } } 然后在web.config中注册模块: <system.webServer xdt:Transform="Insert"> <modules> <!-- Required to replace http in addresses for HttpPost/HttpGet protocols --> <add name="WsdlFixHttpModule" type="MyWebServices.WsdlFixHttp.WsdlFixHttpModule, MyWebServices"/> </modules> </system.webServer> 请注意,上面的注册是集成模式,经典模式需要在里面注册system.web。 因此,在我们的遗留项目中,我使用了 3+4 方法,但如果我想再次这样做,我会尝试使用#2 方法。 :)
我在页面加载事件上有以下代码: Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) 处理 Me.Load con = New SqlConnection("数据源=14GRAFICALI\