以下是我在配置中遇到的一些问题,



weborb 安装时 在iis中注意应用程序池中 .net Framework的版本,托管管道的模式

新建网站,选择刚才配置好的应用程序池,和物理路径


HTTP 错误 500.19 - Internal Server Error

无法访问请求的页面,因为该页的相关配置数据无效。

解决方法:

iis中编辑权限

右键,点击属性,切换到“安全”选项卡上,将 IIS-IUSRS 用户组添加到安全列表中,并按需求赋予其权限(我赋予了修改的权限),更改后如下图:



运行flex端代码直接就跳到了配置的iis的地址


问题:

由于 Web 服务器上此资源的访问控制列表(ACL)配置或加密设置,您无权查看此目录或

解决方法:

找到这个网站所在的目录,点击右键属性---安全---添加everyone,并为everyone赋给相应的权限,问题解决。




未解决的问题:

Server reported an error - [MessagingError message='Destination 'GenericDestination' either does not exist or the destination has no channels defined (and the application does not define any default channels.)']



Server reported an error - None of the handlers were able to invoke the target service. The service may not be found:GenericDestination. Make sure exceptions are logged - check server log for details


解决方法见:

http://www.trailtracer.com/old/weborb30/console/console/troubleshooting.htm


   <destination id="GenericDestination">

       <properties>

           <source>*</source>

       </properties>

   </destination>    





问题:

项目文件必须在引用列表中包含.net framework 程序集“WindowsBase,PresentationCore,PresentationFramework”。错误处理!

解决:

首先我们看看插入图片的属性,生成操作是在Page里面的。

解决的方法就是,把page改成Resource就可以了。



http://localhost:51897/diagnostics.aspx

页面的使用需要引用weborb.dll

进行诊断排错



通过vs生成的一个默认的起始页,改地址:http://localhost:51897/weborbconsole.html,这样直接看到我们部署的服务


问题:

HTTP 错误 404.2 - Not Found. 由于 Web 服务器上的“ISAPI 和 CGI 限制”列表设置,无法提供您请求的页面.

解决:

IIS的根节点->右侧“ISAPI和CGI限制”->把禁止的DotNet版本项设置为允许,即可


-services


E:\testWebOrb\vsPro\WebApplication1\WEB-INF\flex\services-config.xml





Some the definitions first:


Endpoint -url地址,flex发送远程消息或者请求


Channel - 封装了endpoint. Also identifies classes managing the channel on both client and server sides



Destination -  用于鉴别服务端的类,暴露给weborb Used by Flex/AIR client to target method invocations against the referenced class.



Channels are configured in WEB-INF/flex/services-config.xml (and

weborb-services-config.xml if present in your system). Every channel has the "endpoint" element. For example, you have the following

channel definition:


<channel-definition id="my-amf"

class="mx.messaging.channels.AMFChannel">

<endpoint uri="weborb.php" class="flex.messaging.endpoints.AMFEndpoint"/>

<properties>

<polling-enabled>false</polling-enabled>

</properties>

</channel-definition>



<endpoint uri="weborb.php"


"weborb.php" here is actually a URL. 看起来不像一个url其实是被检索了的, If your Flex app is loaded from


http://myhost/foo/AwesomeApp.html

同时你的应用程序会发送远程请求给下列url

http://myhost/foo/weborb.php


(weborb for php 版本需要将weborb.php放在和包含swf的目录下)


remoting-config.xml 告诉客户端使用哪一个channel,这是所有的destination被定义的地方,大多数的destination不会显示的引用channels,因此

采取一种方式来建立默认的channel

<default-channels>

<channel ref="my-amf"/>

</default-channels>

结果是,当你创建一个RemoteObject来调用GenericDestination,remoting requests就会被发送到定义在my-amf中的endpoint


自己在动手修改的时候可以可以将endpoint的url地址改为自己访问的页面的url地址

<channel-definition id="my-amf" class="mx.messaging.channels.AMFChannel">

<endpoint uri="http://localhost:8181/test/test-debug/BasicInvocation.html" class="flex.messaging.endpoints.AMFEndpoint"/>

<properties>

<polling-enabled>false</polling-enabled>

</properties>

</channel-definition>




Now, suppose you need to get AIR to talk to WebORB. Obviously the my-amf channel will not work for you since the endpoint is relative.

你可以将endpoint改为绝对地址可以解决这个问题Alternatively, take a look at the channel with


the following ID:


my-air-amf


Notice the endpoint URL for that channel is absolute. Now take a look at the GenericAIRDestination destination in remoting-config.xml. You will see it references the my-air-amf channel. As a result, if your

AIR application uses "GenericAIRDestination", your AIR client will talk to WebORB and send remoting requests to the endpoint URL from the

my-air-amf channel. It is important to adjust the URL to reflect the location of your WebORB instance.