GVKun编程网logo

使用ASP在IIS创建WEB站点的函数(使用iis搭建asp开发环境)

8

如果您对使用ASP在IIS创建WEB站点的函数和使用iis搭建asp开发环境感兴趣,那么这篇文章一定是您不可错过的。我们将详细讲解使用ASP在IIS创建WEB站点的函数的各种细节,并对使用iis搭建a

如果您对使用ASP在IIS创建WEB站点的函数使用iis搭建asp开发环境感兴趣,那么这篇文章一定是您不可错过的。我们将详细讲解使用ASP在IIS创建WEB站点的函数的各种细节,并对使用iis搭建asp开发环境进行深入的分析,此外还有关于Axis创建WebService、Axis创建webservice客户端和服务端、FTPC使用Axis2创建WebService、iis – 在PowerShell中创建Web场的实用技巧。

本文目录一览:

使用ASP在IIS创建WEB站点的函数(使用iis搭建asp开发环境)

使用ASP在IIS创建WEB站点的函数(使用iis搭建asp开发环境)

=============================================================
''       感谢您使用ASP001工作室开发的实用函数程序
''               HTTP://WWW.ASP001.NET
''=============================================================     
''ASP001工作室为您提供订制程序开发、企业互联网拓展服务
''QQ:1974229
''E-Mail:Shenyangchuqi@tom.com
''更多程序下载请到HTTP://WWW.ASP001.NET
''=============================================================     
''函数介绍:创建WebSite
''本函数使用ADSI,需要Administrators组用户权限
''函数名称:CreateWebSite(Computer,IPAddr,PortNum,HostName,WebSiteDirectory,LogDirectory,WebSiteInfo,GuestUserName,GuestUserPass,StartOrStop)
''程序开发:ASP001工作室 ChuQi
''用法:CreateWebSite 计算机名(一搬为LocalHost或127.0.0.1),站点IP地址,端口号,主机名,站点根目录,,LOG文件的目录站点说明,网站访问时所使用的帐号,网站访问时所用帐号的口令,是否启动站点
''例:CreateWebSite "LocalHost","127.0.0.123","80","www.test.net","E:\UserData\UserNum001","E:\UserData\UserNum001\LogFiles","wwwtest.net","IUSR_Num001_test.net","abc888",True
''=============================================================

Function CreateWebSite(Computer,IPAddr,PortNum,HostName,WebSiteDirectory,LogDirectory,WebSiteInfo,GuestUserName,GuestUserPass,StartOrStop)
Dim w3svc, WebServer, NewWebServer, NewDir
Dim Bindings, BindingString, NewBindings, SiteNum, SiteObj, bDone
On Error Resume Next
Err.Clear
''检测是否能够加载W3SVC服务(即WEB服务)
Set w3svc = GetObject("IIS://" & Computer & "/w3svc")
If Err.Number <> 0 Then ''显示错误提示
response.write "无法打开: "&"IIS://" & Computer & "/w3svc"
response.end
End If

''检测是否有设定相同IP地址、端口及主机名的站点存在
BindingString = IPAddr & ":" & PortNum & ":" & HostName
For Each WebServer in w3svc
If WebServer.Class = "IIsWebServer" Then
Bindings = WebServer.ServerBindings
If BindingString = Bindings(0) Then
response.write "IP地址冲突:" & IPAddr & ",请检测IP地址!."
Exit Function
End If
End If
Next

''确定一个不存在的站点编号做为新建站点编号,系统默认WebSite站点编号为1,因此从2开始
SiteNum=2
bDone = False

While (Not bDone)
Err.Clear
Set SiteObj = GetObject("IIS://"&Computer&"/w3svc/"&SiteNum)         ''加载指定站点
If (Err.Number = 0) Then
''response.write " Step_1站点"&SiteNum&"存在 "
SiteNum = SiteNum + 1
Else
''response.write " Step_1站点"&SiteNum&"不存在 "
Err.Clear
Set NewWebServer = w3svc.Create("IIsWebServer",SiteNum)              ''创建指定站点
   If (Err.Number <> 0) Then
   ''response.write " Step_2站点"&SiteNum&"创建失败 "
   SiteNum = SiteNum + 1
   Else
   ''response.write " Step_2站点"&SiteNum&"创建成功 "
   bDone = True
   End If
End If

If (SiteNum > 50) Then  ''服务器最大创建站点数
response.write "超出服务器最大创建站点数,正在创建的站点的序号为: "&SiteNum&"."
response.end
End If
Wend

''进行站点基本配置
NewBindings = Array(0)
NewBindings(0) = BindingString
NewWebServer.ServerBindings = NewBindings
NewWebServer.ServerComment= WebSiteInfo
NewWebServer.AnonymousUserName= GuestUserName
NewWebServer.AnonymousUserPass= GuestUserPass
NewWebServer.KeyType = "IIsWebServer"
NewWebServer.FrontPageWeb = True
NewWebServer.EnableDefaultDoc = True
NewWebServer.DefaultDoc = "Default.htm, Default.asp, Index.htm, Index.asp"
NewWebServer.LogFileDirectory= LogDirectory
NewWebServer.SetInfo

Set NewDir = NewWebServer.Create("IIsWebVirtualDir", "ROOT")
NewDir.Path = WebSiteDirectory
NewDir.AccessRead = true
NewDir.AppFriendlyName = "应用程序" & WebSiteInfo
NewDir.AppCreate True
NewDir.AccessScript = True
Err.Clear
NewDir.SetInfo
If (Err.Number = 0) Then
Else
response.write "主目录创建时出错."
response.end
End If

If StartOrStop = True Then
Err.Clear
Set NewWebServer = GetObject("IIS://" & Computer & "/w3svc/" & SiteNum)
NewWebServer.Start
If Err.Number <> 0 Then
response.write "启动站点时出错!"
response.end
Err.Clear
Else
End If
End If 
response.write "站点创建成功,站点编号为:"& SiteNum &" ,域名为:"& HostName
End Function

Axis创建WebService

Axis创建WebService

学习Axis和web service之一

 
web service由于工作中需要用到,所以那天从网上GOOGLE一下,查看如何制作自己的第一个WEB SERVICE。首先,web service的原理我就不多讲了,再怎么讲也不如人家讲的好,况且都是从别人那里拷贝的。还是整点实际的吧。马上建立自己的WEB SERVICE的程序。

一.首先下载安装软件:
1.axis-src-1_2_1,(自己去下载,地址忘记了)
2.jakarta-tomcat-5.0.18.exe(这个是安装版本,从别的地方拷贝也可以的)
最少也要有这两个包

二.安装
自己安装吧。挺简单的。TOMCAT安装最好改一下名字比如:TOMCAT

三.
1.将axis-src-1_2_1这个包解压后,将axis-1_2_1/webapps下axis的所有东西拷贝到你刚刚建立的TOMCAT的webapps下。目录结构如下:
tomcat-webapps-axis
然后查看一下你的axis的WEB-INF的lib下*.jar文件是否全,应该有8个
axis.jar
axis-ant.jar
commons-discovery-0.2.jar
commons-logging-1.0.4.jar
jaxrpc.jar
log4j-1.2.8.jar
saaj.jar
wsdl4j-1.5.1.jar
(一定看好各个文件的文件名,一会将配置CLAsspATH)

2.然后到axis-1_2_1目录下,找到lib文件夹,拷贝其中的activation.jar文件,到
Tomcat/webapps/axis/WEB-INF/lib,和上面的8个jar文件在一起,就OK了。

四.配置 web.xml

在web.xml里写上下面这段话

<servlet>
  <servlet-name>AxisServlet</servlet-name>
  <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class>
  <load-on-startup>5</load-on-startup>
   </servlet>
   
    <servlet-mapping>
  <servlet-name>AxisServlet</servlet-name>
  <url-pattern>/services/*</url-pattern>
   </servlet-mapping>

在应用服务器启动时就会调用server-config.wsdd

文件如下

<?xml version="1.0" encoding="UTF-8"?>
<deployment xmlns="http://xml.apache.org/axis/wsdd/"
 xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
 <globalConfiguration>
  <parameter name="adminPassword" value="admin" />
  <parameter name="sendxsitypes" value="true" />
  <parameter name="sendMultiRefs" value="true" />
  <parameter name="sendXMLDeclaration" value="true" />
  <parameter name="axis.sendMinimizedElements" value="true" />
  <requestFlow>
   <handler type="java:org.apache.axis.handlers.JWSHandler">
    <parameter name="scope" value="session" />
   </handler>
   <handler type="java:org.apache.axis.handlers.JWSHandler">
    <parameter name="scope" value="request" />
    <parameter name="extension" value=".jwr" />
   </handler>
  </requestFlow>
 </globalConfiguration>
 <handler name="Authenticate"
  type="java:org.apache.axis.handlers.SimpleAuthenticationHandler" />
 <handler name="LocalResponder"
  type="java:org.apache.axis.transport.local.LocalResponder" />
 <handler name="URLMapper"
  type="java:org.apache.axis.handlers.http.URLMapper" />
 <service name="AdminService" provider="java:MSG">
  <parameter name="allowedMethods" value="AdminService" />
  <parameter name="enableRemoteAdmin" value="false" />
  <parameter name="className" value="org.apache.axis.utils.Admin" />
  <namespace>http://xml.apache.org/axis/wsdd/</namespace>
 </service>

 <service name="Version" provider="java:RPC">
  <parameter name="allowedMethods" value="getVersion" />
  <parameter name="className" value="org.apache.axis.Version" />
 </service>

 <!-- <service name="ss" provider="java:RPC">
  <parameter name="allowedMethods" value="*" />
  <parameter name="className" value="org.apache.axis.AA" />
 </service>
  -->
 <transport name="http">
  <requestFlow>
   <handler type="URLMapper" />
   <handler
    type="java:org.apache.axis.handlers.http.HTTPAuthHandler" />
  </requestFlow>
 </transport>
 <transport name="local">
  <responseFlow>
   <handler type="LocalResponder" />
  </responseFlow>
 </transport>
 
 <service name="tcsfService" type="" regenerateElement="true"
         provider="java:RPC"use="encoded">
         <parameter name="scope" value="Request" regenerateElement="false"/>
         <parameter name="className" value=".webService.server.TcsfWebService" regenerateElement="false"/>
        <parameter name="allowedMethods" value="*" regenerateElement="false"/>
        <beanMapping languageSpecificType="java:webService.client.CommonResult" qname="ns:CommonResult" xmlns:ns="urn:BeanService"/>
 </service>
</deployment>
然后启动服务器

打开浏览器输入

http://172.31.0.9/services/tcsfService?wsdl

如果不报错就证明环境正常,就可以开始编写了,当然TcsfWebService这个类里可以便写的.只要存在就行了.

五.测试
这步很重要,我自己觉得,因为如果你不知道CLAsspATH是否配置齐全,所以应该测试一下,有些文章没有测试直接就往下走了,但是就出现问题了,我就出现了问题,是jar包没有导入造成的,错误信息如这样:
Exception in thread "main" java.lang.NoClassDefFoundError:

javax/wsdl/OperationType
at org.apache.axis.description.OperationDesc.<clinit>(OperationDesc.java
:58)
          at org.apache.axis.client.Call.addParameter(Call.java:948)
          at org.apache.axis.client.Call.addParameter(Call.java:983)
          at BankClient.main(BankClient.java:29)
这就是没有导入造成的错误。
其实你先看一下classpath就能避免错误。
点击开始-运行-cmd-打开命令行窗口-敲入set classpath,好了你配置的classpath完全显示了,你可以仔细的查看了。

六调试AXIS
启动TOMCAT,输入网址 http://localhost:8080/axis,出现 "Hello! Welcome to Apache-Axis." 欢迎词,点击链接 Validate 来验证 Axis 所需的 .jar 包是否齐全 (Needed Components).

七.开发一个 Web Service 服务端程序
(代码是转贴,谢谢!)
我的这个例子是使用 Web Service 返回一个请求字段的值.

import java.util.*;

public class wsTestService
{
    String strName = "Ryun";
    int intAge = 21;
    List items = new ArrayList();
  
    public String getName() {
      return strName;
     }
  
    public int getAge() {
      return intAge;
     }
  
    public List getItems() {
      return items;
     }
}将此文件命名为 wsTestService.jws 存放到
d:/tomcat/webapp/axis/下
访问 http://localhost:8080/axis/wsTestService.jws,出现 "There is a Web Service here"即表明 Web Service 服务端程序安装完成.
开发一个 Web Service 客户端程序
建立客户端程序wsTestClient.java
以下是客户端的源程序,用于向 Web Service Server 提交服务请求:

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;

public class wsTestClient {
    public static void main(String args[]) {
      System.out.println("Start invoking...");
      try {
        String strUri = "http://localhost:8080/axis/wsTestService.jws";
        Service service = new Service();
        Call call = (Call)service.createCall();
        call.setTargetEndpointAddress(new java.net.URL(strUri));
        call.setoperationName("getName");
        String ret = "" + call.invoke(new Object[] {});
        System.out.println("I am " + ret + ".");
       }
      catch (Exception e) {
        System.err.println(e.toString());
       }
      System.out.println("Finished the invoking.");
      }
}
然后编译运行,如果出现问题,那可能是环境变量path,classpath配置的问题,自己查看

一下,这里就不再描述了。
C:/>cd /
C:/>javac wsTestClient.java

C:/>java wsTestClient
Start invoking...
I am Ryun.
Finished the invoking.
完成,再去学习,稍后总结

Axis创建WebService 测试环境和工具:jdk1.4.2,tomcat 5.x,eclipse 3.0,axis 1.2.x 首先配置好jdk和tomcat容器。 首先 下载 axis [http://apache.justdn.org/ws/axis/1_2_1/]目前版本是 1.2.1。解压缩到某个盘的axis下面。 copy %axis%/webapps/axis目录到 %tomcat_home%/webapps下。 copy mail.jar,activation.jar到 %tomcat_home%/webapps/axis/WEB-INF/lib下,这两个文件可以去sun网站或者google里去search。 启动tomcat,没有报错,而且可以访问[http://localhost:8080/axis/happyaxis.jsp] 说明你配置已经成功。 HelloWorld 测试 打开eclipse 创建一个axis的j2ee project,导入%tomcat_home%/webapps/axis/WEB-INF/lib下的所有的jar文件到该项目的lib目录,并且添加到classpath。 创建HellowWorld.java 文件 public class HelloWorld { public String sayHello() { return "Hello World!"; } } 创建 HelloClient.java 文件 import org.apache.axis.client.Call; import org.apache.axis.client.Service; public class HelloClient { public static void main(String [] args) throws Exception { String endpoint = "http://localhost:" +"8080"+ "/axis/services/HelloWorld"; Service service = new Service(); Call call = (Call) service.createCall(); call.setTargetEndpointAddress( new java.net.URL(endpoint) ); call.setoperationName("sayHello" ); String res = (String) call.invoke( new Object[] {} ); System.out.println( res ); } } 创建 server-config.wsdd文件 在%TOMCAT_HOME%/webapps/axis/WEB-INF下新建deploy.wsdd文件,即SOAP服务发布描述文件 deploy.wsdd <deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"> <service name="HelloWorld" provider="java:RPC"> <parameter name="className" value="HelloWorld"/> <parameter name="allowedMethods" value="sayHello"/> </service> </deployment> 在%TOMCAT_HOME%/webapps/axis/WEB-INF目录下执行下列语句 java -Djava.ext.dirs=lib org.apache.axis.client.AdminClient -lhttp://localhost:8080/axis/services/AdminService deploy.wsdd 要注意的是 -Djava.ext.dirs=lib这个参数,这个参数可以使你编译过程中动态调用axis.jar包。而不需要事先在系统变量里配置axis.jar包的路径。另外,-lhttp://之后只有axis这个字符串可以根据项目名称的不同而修改,其他的都是必然写法。 打印 Processing file deploy.wsdd <Admin>Done processing</Admin> 则表示成功 你会发现目录下多了一个server-config.wsdd文件,这就是AXIS的配置文件,以后所有的服务发布描述都会在里面找到。(当然,你可以直接修改它,不用再写deploy.wsdd)然后打开浏览器http://localhost:8080/axis/servlet/AxisServlet,你就会看到你的服务已发布 copy HelloWorld.class文件到 %TOMCAT_HOME%/webapps/axis/WEB-INF/classes下 在eclipse平台 run HelloClient 则可以执行 返回结果:Hello World! 这是一个最简单的测试用例 :p~~~   

Axis创建webservice客户端和服务端

Axis创建webservice客户端和服务端

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本人声明。否则将追究法律责任。
作者: 永恒の_☆ 地址: http://www.voidcn.com/article/p-xkhqhxav-bhs.html

一、Axis的介绍

Web Service是现在最适合实现SOA的技术,而Axis是实现Web Service的一种技术框架(架构)。

二、Axis的准备条件

所需要的jar包:

    axis.jar

    jaxrpc.jar

   saaj.jar

   wsdl4j-1.5.1.jar

   commons-discovery-0.2.jar

   xbean.jar

下载地址:http://download.csdn.net/detail/ch656409110/5747129

三、创建webservice服务端

1、先将jar包放入lib目录

2、在web.xml中配置axis监听器和核心servlet


  <!-- axis配置 -->
  <listener>
    <listener-class>org.apache.axis.transport.http.AxisHTTPSessionListener</listener-class>
  </listener>
  <servlet>
    <display-name>Apache-Axis Servlet</display-name>
    <servlet-name>AxisServlet</servlet-name>
    <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class>
  </servlet>
  <servlet>
    <display-name>Axis Admin Servlet</display-name>
    <servlet-name>AdminServlet</servlet-name>
    <servlet-class>org.apache.axis.transport.http.AdminServlet</servlet-class>
    <load-on-startup>100</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>AxisServlet</servlet-name>
    <url-pattern>/servlet/AxisServlet</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>AxisServlet</servlet-name>
    <url-pattern>/services/*</url-pattern>
  </servlet-mapping>

3、创建一个xml,名字叫server-config.wsdd 放在WEB-INF根目录

<?xml version="1.0" encoding="UTF-8"?>

<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
 	<handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper"/>
  
	<service name="houseWebService" provider="java:RPC">
		<parameter name="allowedMethods" value="*"/>
		<parameter name="className" value="com.struts2.webservice.server.HouseWebServiceImpl"/>
	</service>
 
	<transport name="http">
		<requestFlow>
			<handler type="URLMapper"/>
		</requestFlow>
	</transport>
</deployment>


4、根据配置再创建webservice服务端的实现类

1、定义接口HouseWebService.java 

public String getHouseList(String xmlStr);

2、实现该接口HouseWebServiceImpl.java 

可以随便返回一些字符串即可。

5、保存,发布项目,启动tomcat

在地址栏输入:http://localhost:8080/house/services/houseWebService?wsdl  即可看到发布的服务端的明细。

如下:


这就表示Axis发布的webservice服务端成功了。

6、通过客户端调用服务端webservice


	/**
	 * 调用webservice路口
	 * @param endpoint 地址
	 * @param methodName 调用的方法
	 * @param xmlStr 传递的xml字符串参数
	 * @return
	 */
	public String invoke(String endpoint,String methodName,String xmlStr){
		Service service = new Service();
		Call call = null;
		try {
			call = (Call) service.createCall();
		} catch (ServiceException e) {
			e.printstacktrace();
		}
		QName qn = new QName(methodName);
		call.setoperationName(qn);
		call.setTargetEndpointAddress(endpoint);
		call.setUseSOAPAction(true);
		String result = "";
		try {
			// 给方法传递参数,并且调用方法
			result = (String) call.invoke(new Object[] { xmlStr });
		} catch (remoteexception e) {
			e.printstacktrace();
		}
		System.out.println("result is " + result);
		return result;
	}

public List<House> getHouseList() {
        String xmlStr = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
                 + " <house>"
                 + "   <condition>"
                 + "     <title>便宜</title>"
                 + "     <price></price>"
                 + "     <streetname></streetname>"
                 + "    <typename></typename>"
                 + "    <floorage>100</floorage>"
                 + "    <pageno></pageno>"
                 + "    <pagesize></pagesize>"
                 + "   </condition>"
                 + " </house>";
        String result = invoke("http://localhost:8080/house/services/houseWebService","getHouseList",xmlStr);
}

在这里面传递的xml规范由 服务端自己规范好了,然后去解析、获取参数,执行相应的操作,返回想要的结果给调用的客户端。。


如果用axis调用axis的服务端使用使用起来很方便,但是调用cxf的服务端容易出错。

比如:如果在调用的时候没有指定命名空间,就不行。

在调用的时候不指定调用的参数以及返回的结果类型,就收不到客户端发送的参数。可以看看:http://blog.csdn.net/ch656409110/article/details/9310789

FTPC使用Axis2创建WebService

FTPC使用Axis2创建WebService

以往在FTPC里创建WebService是用jaxrpc,但是这次服务端的返回解析不了,而使用jaxrpc对返回值自己解析也不好操作,测试过axis2之后,觉得还不错。

1、使用wsdl2java自动生成java代码

进入Windows控制台,执行如下命令来生成WebService的客户端代码:

%AXIS2_HOME%\bin\wsdl2java -uri http://127.0.0.1:8080/awyb/services/mySoapService?wsdl -p client -s -o stub

其中-uri参数指定了wsdl文件的路径,可以是本地路径,也可以是网络路径。-p参数指定了生成的Java类的包名,-o参数指定了生成的一系列文件保存的根目录。在执行完上面的命令后,我们就会发现在当前目录下多了个stub目录,在./stub/src/client目录可以找到对应的客户端调用文件,这些文件复杂调用WebService,我们可以在程序中直接使用这些文件

2、引入Axis2的jar包,开发测试的时候可以建library,部署的时候放到SOS的lib下面即可,不用担心jar包冲突

3、需要引入的jar

其中引入dom4j是因为解析服务端返回的报文出错,自己手写的把XML转换成对象的解析语句要用到。

其他的是axis2本身要用到的jar包

4、服务端反应收不到请求对象,要求将HTTP请求头设为:Content-Type: text/xml; charset=UTF-8  

修改方法:

_serviceClient.getOptions().setSoapVersionURI(org.apache.axiom.soap.SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI);

如果使用SOAP11Constants(SOAP 1.1),HTTP请求头如下:

  1. POST /test HTTP/1.1  
  2. Content-Type: text/xml; charset=UTF-8  
  3. SOAPAction: "urn:add"  
  4. User-Agent: Axis2  
  5. Host: 146.11.42.87:9876  
  6. Transfer-Encoding: chunked  

如果使用SOAP12Constants(SOAP 1.2) ,HTTP请求头如下:

  1. POST /test HTTP/1.1  
  2. Content-Type: application/soap+xml; charset=UTF-8; action="urn:add"  
  3. User-Agent: Axis2  
  4. Host: 146.11.42.87:9876  
  5. Transfer-Encoding: chunked  

如果不设置这个参数,HTTP请求头如下(和SOAP 1.1是一样的,可以确认默认使用SOAP 1.1):

  1. POST /test HTTP/1.1  
  2. Content-Type: text/xml; charset=UTF-8  
  3. SOAPAction: "urn:add"  
  4. User-Agent: Axis2  
  5. Host: 146.11.42.87:9876  
  6. Transfer-Encoding: chunked  

HTTP响应头中的Content-Type字段也是一样的

iis – 在PowerShell中创建Web场

iis – 在PowerShell中创建Web场

我正在尝试在Power Shell中自动创建服务器场.通过手动创建,我得到了以下 XML:
<webFarms>
    <webFarm name="alwaysup" enabled="true">
        <server address="alwaysup-blue" enabled="true">
            <applicationRequestRouting httpPort="8001" />
        </server>
        <server address="alwaysup-green" enabled="true">
            <applicationRequestRouting httpPort="8002" />
        </server>
        <applicationRequestRouting>
            <healthCheck url="http://alwaysup/up.html" interval="00:00:05" responseMatch="up" />
        </applicationRequestRouting>
    </webFarm>
    <applicationRequestRouting>
        <hostAffinityProviderList>
            <add name="Microsoft.Web.Arr.HostNameRoundRobin" />
        </hostAffinityProviderList>
    </applicationRequestRouting>
</webFarms>

试图通过PS做到这一点证明是麻烦的:据我所知,没有专门的API来做到这一点(WebFarmSnapin意味着旧版本).

我已将注意力转移到IIS Administration Cmdlets,但只是让它工作了一半.

我有的代码:

#####
# Overwriting the server farm
#####

Write-Host "Overwriting the server farm $($webFarmName)"

$webFarm = @{};
$webFarm["name"] = 'siteFarm'

Set-WebConfiguration "/webFarms" -Value $webFarm

#####
# Adding the servers
#####

Write-Host "Adding the servers"

$blueServer = @{}
$blueServer["address"] = 'site-blue'
$blueServer["applicationRequestRouting"] = @{}

$greenServer = @{}
$greenServer["address"] = 'site-green'
$greenServer["applicationRequestRouting"] = @{}

$servers = @($blueServer,$greenServer)

Add-WebConfiguration -Filter "/webFarms/webFarm[@name='siteFarm']" -Value $servers

#####
# Adding routing
#####

Write-Host "Adding the routing configurations"

$blueServerRouting = @{}
$blueServerRouting["httpPort"] = "8001"
Add-WebConfiguration -Filter "/webFarms/webFarm[@name='siteFarm']/server[@address='site-blue']" -Value $blueServerRouting

这会产生

<webFarms>
    <webFarm name="siteFarm">
        <server address="site-blue" />
        <server address="site-green" />
    </webFarm>
    <applicationRequestRouting>
        <hostAffinityProviderList>
            <add name="Microsoft.Web.Arr.HostNameRoundRobin" />
        </hostAffinityProviderList>
    </applicationRequestRouting>
</webFarms>

正如您所看到的那样,它缺少与路由相关的端口.而且我还没有开始尝试在此时添加健康检查.

我究竟做错了什么?是否有一些我没有找到的Cmdlet让这更容易?

Related但没有太多有用的答案(生成代码的PowerShell选项卡保持为空).

在实现SF存在并且可能更合适之后,从SO开始在此处进行交叉.

解决方法

我见过的最好的方法是将powershell与appcmd.exe命令混合使用. Microsoft已发布一些示例代码,用于在docker容器 here中设置服务器场.

这是一个例子:

ForEach($farm in $farms)
{   
    # Create the farm
    .\appcmd.exe set config  -section:webFarms /+"[name='$($farm.name)']" /commit:apphost

    ForEach($server in $farm.Servers)
    {
        # Add server to farm
        .\appcmd.exe set config  -section:webFarms /+"[name='$($farm.name)'].[address='$($server.address)']" /commit:apphost
    }

    # URL Rewrite
    .\appcmd.exe set config  -section:system.webServer/rewrite/globalRules /+"[name='ARR_$($farm.name)_lb',patternSyntax='Wildcard',stopProcessing='True']" /commit:apphost
    .\appcmd.exe set config  -section:system.webServer/rewrite/globalRules /"[name='ARR_$($farm.name)_lb',stopProcessing='True']".match.url:"*"  /commit:apphost
    .\appcmd.exe set config  -section:system.webServer/rewrite/globalRules /"[name='ARR_$($farm.name)_lb',stopProcessing='True']".action.type:"Rewrite"  /"[name='ARR_$($farm.name)_lb',stopProcessing='True']".action.url:"http://$($farm.name)/{R:0}"  /commit:apphost
}

关于使用ASP在IIS创建WEB站点的函数使用iis搭建asp开发环境的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于Axis创建WebService、Axis创建webservice客户端和服务端、FTPC使用Axis2创建WebService、iis – 在PowerShell中创建Web场的相关知识,请在本站寻找。

本文标签: