Batch file .bat错误:';http:' ;;未被识别为内部或外部命令、可操作程序或批处理文件

Batch file .bat错误:';http:' ;;未被识别为内部或外部命令、可操作程序或批处理文件,batch-file,wsdl,asmx,command-prompt,Batch File,Wsdl,Asmx,Command Prompt,我在尝试使用Visual Studio 2012/2013从现有ASP网站设置(更不用说运行)单元测试时遇到了另一个死胡同,但我认为这个问题值得一提,因为尽管我看到过类似的问题,但我在过去5个小时内尝试的每件事都产生了介于0和Null之间的结果(不是字面上的意思,如果我能得到这样的输出,那会很有帮助) 我的批处理文件的内容是,按照sitepoint.com创建和使用.NET Web服务的说明,分为5个简单步骤: wsdl /l:CS /n:WService /out:bin/wsdlWalkth

我在尝试使用Visual Studio 2012/2013从现有ASP网站设置(更不用说运行)单元测试时遇到了另一个死胡同,但我认为这个问题值得一提,因为尽管我看到过类似的问题,但我在过去5个小时内尝试的每件事都产生了介于0和Null之间的结果(不是字面上的意思,如果我能得到这样的输出,那会很有帮助)

我的批处理文件的内容是,按照sitepoint.com创建和使用.NET Web服务的说明,分为5个简单步骤:

wsdl /l:CS /n:WService /out:bin/wsdlWalkthrough.cs
http://localhost/webserv.asmx?wsdl
由于我试图遵循一篇十多年前的文章的步骤,语法和约定可能很容易改变。但是,它能够指导我制作一个正常工作的.asmx页面,所以我一直尝试坚持下去。无论如何,当我在VS2012的开发者命令提示符下运行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; 

  } 
}
我尝试关闭自动运行,我已将http地址添加为系统变量,但没有任何效果。有人能够识别我的问题吗?因为我对VS2012的开发人员命令提示符说它无法识别http:。是不是Hy到目前为止,每文本传输协议是否已在体系结构级别集成

更新

“http:”未被识别为内部或外部命令、可操作程序或批处理文件

是因为url与 命令(它应该是谁的参数),批处理由(这是 一系列命令的简化视图(每个命令位于不同的行上)。 为了克服这个问题,将2行合并为1行:

wsdl /l:CS /n:WService /out:bin/wsdlWalkthrough.cs http://localhost:20141/webserv.asmx?wsdl
wsdl /l:CS /n:WService /out:bin/wsdlWalkthrough.cs http://localhost:20141/webserv.asmx?wsdl
或通过插入符号对eoln(
\r\n
)字符进行转义:

如果一切正常,您应该拥有bin/wsdlWalkthrough.cs 文件已生成

CristiFati的指示让我越过了最初的障碍。现在新的错误是:

错误:处理时出错 “http://localhost/webserv.asmx?wsdl”。 -下载“http://localhost/webserv.asmx?wsdl”时出错。 -请求失败,HTTP状态为404:未找到

这似乎是我自己可能找到的答案,但如果能得到进一步的帮助,我将不胜感激

“http:”未被识别为内部或外部命令、可操作程序或批处理文件

这是因为url与命令(其参数应为)位于不同的行上,并且批处理由一系列命令组成(这是一个简化视图),每个命令位于不同的行上。为了克服此问题,请将这两行合并为1:

wsdl /l:CS /n:WService /out:bin/wsdlWalkthrough.cs http://localhost:20141/webserv.asmx?wsdl
wsdl /l:CS /n:WService /out:bin/wsdlWalkthrough.cs http://localhost:20141/webserv.asmx?wsdl
或通过插入符号对eoln(
\r\n
)字符进行转义:


如果一切正常,你应该生成你的bin/wsdlWalkthrough.cs文件。

多么尴尬啊,新行字符又一次造成了严重破坏。如果我有先决条件信誉点,我会投你一票。这解决了第一个问题。下面的链接说明了如何从浏览器访问web服务:我不确定WSDL已部署,可通过以下方式访问:
http://localhost:20141/webserv.asmx/ShowSuppliers?str=SomeCountryName
。我衷心感谢您的帮助,如果可以的话,我会给您一面有用的旗帜,以配合这次投票。遗憾的是,我所能做的就是分享我的一些饼干:cfduid、hstc、qca acct HSFIRST VISIT HUBSPOUTKYOU欢迎您.别担心:)。不过有一点值得一提:不要在问题中包含答案(即使是部分答案),这会使答案更长(更难阅读)。我不是WSDL专家,但.asmx内容看起来还可以。请注意,在最新的错误消息中(不确定粘贴消息时是否输入错误),http://和//localhost之间有额外的空间。该错误是否来自批处理文件?您是否可以尝试使用抛出的相同链接:XML解析错误:浏览器中的格式不正确?如果浏览器中出现错误,是否可以查看页面源?
wsdl /l:CS /n:WService /out:bin/wsdlWalkthrough.cs ^
http://localhost:20141/webserv.asmx?wsdl