我尝试使用Visual Studio 2012/2013从现有的ASP网站设置单元测试,更不用说运行了另一个死胡同,但我认为这个问题值得关注#&#从那以后,尽管我已经看过类似的问题了,但我在过去5个小时内尝试过的所有东西都产生了0到Null之间的东西(不是字面意义,如果我得到这样的输出会有所帮助),
我的批处理文件的内容是按照sitepoint.com的5个简单步骤创建和使用.NET Web服务的说明进行的:
wsdl /l:CS /n:WService /out:bin/wsdlWalkthrough.cs
http://localhost/webserv.asmx?wsdl
由于我尝试按照十多年前的文章的步骤进行操作,因此语法和约定可能很容易发生变化。但是,嘿,它能够指导我制作一个有效的 .asmx 页面,所以我试图坚持下去。无论如何,当我在VS2012的Developer Command Prompt上运行makeWS.bat时,我收到错误:
' HTTP:'不被认为是内部或外部命令,可操作 程序或批处理文件。
在尝试解决问题时,我的makeWS.bat页面目前看起来像:
wsdl /l:CS /n:WService /out:bin/wsdlWalkthrough.cs
http://localhost:20141/webserv.asmx?wsdl
此外, .asmx 文件如下所示:
<%@ WebService Language="C#" Class="GetInfo" %>
using System;
using System.Data;
using System.Data.SqlClient;
using System.Web.Services;
[WebService(Description="My Suppliers List Web Service")]
public class GetInfo : WebService
{
[WebMethod(Description="My WebService",BufferResponse=true)]
public DataSet ShowSuppliers (string str)
{
SqlConnection dbConnection = new SqlConnection("server=(local);uid=sa;pwd=;database=Northwind;");
SqlDataAdapter objCommand = new SqlDataAdapter("select ContactName, CompanyName, City, Phone from Suppliers where Country = '" + str + "' order by ContactName asc", dbConnection);
DataSet DS = new DataSet();
objCommand.Fill(DS);
return DS;
dbConnection.Close();
dbConnection = null;
}
}
当我从文件资源管理器中运行Firefox中的ASMX页面时,出现错误:
XML解析错误:格式不正确
但是,从VS2013运行 .asmx 页面可以让一切顺利进行。我想也许localhost端口可能起了作用,所以我尝试调整我的批处理文件:
wsdl /l:CS /n:WService /out:bin/wsdlWalkthrough.cs
http://localhost:20141/webserv.asmx?wsdl
我尝试关闭自动运行,我已将http地址添加为系统变量,但没有任何效果。有没有人能够识别我的问题,因为当我的 VS2012开发人员命令提示表示它没有识别 http:时,我真的不相信。到目前为止,还没有在架构级别集成超文本传输协议吗?
更新
&#39; HTTP:&#39;不被识别为内部或外部命令,可操作程序或批处理文件。
是因为网址与网页不同 wsdl(.exe) 命令(它的参数应该是),并且批处理包含(这是 简化视图)一系列命令,每个命令在不同的行上。 为了克服这一点,将2行合并为1:
wsdl /l:CS /n:WService /out:bin/wsdlWalkthrough.cs http://localhost:20141/webserv.asmx?wsdl
或通过 ^ (插入符号)转义 eoln (
\r\n
)字符:wsdl /l:CS /n:WService /out:bin/wsdlWalkthrough.cs ^ http://localhost:20141/webserv.asmx?wsdl
如果一切正常,您应该拥有 bin / wsdlWalkthrough.cs 文件生成。
CristiFati的指示让我超越了最初的障碍。现在新的错误是:
错误:处理错误 &#39; http://localhost/webserv.asmx?wsdl'。 - 下载&#39; http://localhost/webserv.asmx?wsdl'时出错。 - 请求失败,HTTP状态为404:Not Found。
这似乎是我可能找到自己的答案,但仍然非常感谢进一步的帮助。
答案 0 :(得分:1)
&#39; HTTP:&#39;不被识别为内部或外部命令,可操作程序或批处理文件。
是因为url与wsdl(.exe)命令(应该是其参数)不在一行,并且批处理包含(这是简化视图)一系列命令,每个命令位于不同的行上。为了克服这一点,将2行合并为1:
System.out.println("Please type a message to be encrypted:");
message = scanner.nextLine();
或通过 ^ (插入符号)转义 eoln (wsdl /l:CS /n:WService /out:bin/wsdlWalkthrough.cs http://localhost:20141/webserv.asmx?wsdl
)字符:
\r\n
如果一切正常,您应该生成 bin / wsdlWalkthrough.cs 文件。