Archive for October, 2006

Flex + Asp.net WebService + Sql 构建应用程序时发现的问题

Thursday, October 26th, 2006

当使用<mx:WebService>构建应用程序时,向WebService发送请求后,从数据库中检索数据时,会发生IOError,错误提示为”流错误”。

具体原因未知,使用直接定义的mx.rpc.soap.mxml.WebService 对象,配合mx.rpc.AsyncToken进行异步调用,未发生错误。

import mx.rpc.soap.LoadEvent;

import mx.rpc.AsyncToken;

import mx.rpc.soap.mxml.WebService;

import mx.rpc.Fault;

import mx.controls.Alert;

import TokenResponder.TokenResponder;

public var service:WebService;

private function load():void

{

service = new WebService();

service.wsdl = “***.asmx?wsdl“;

service.useProxy = false;

service.showBusyCursor = true;

service.addEventListener(LoadEvent.LOAD,wsdlLoadHandler);

service.loadWSDL();

}

private function wsdlLoadHandler(event:Object):void

{

PluginStatus.text = event.toString();

var token:AsyncToken = AsyncToken(service.method(params));

token.addResponder(new TokenResponder(webserviceResult,”Error”));

}

private function webserviceResult(event:Object):void

{

Alert.show(”Ok”);

}

package TokenResponder
{

import mx.controls.Alert;
import mx.rpc.IResponder;
import mx.rpc.events.FaultEvent;

/**
* A simple responder that will call the result function specified but
* handles any fault by simply raising an Alert with the specified title.
*/
public class TokenResponder implements IResponder
{

private var resultHandler:Function;

private var faultTitle:String;

public function TokenResponder(result:Function, faultTitle:String=null)

{

super();

resultHandler = result;

this.faultTitle = faultTitle;

}

public function result(data:Object):void

{

resultHandler(data);

}

public function fault(info:Object):void

{

//the info object from an AsyncToken is always a FaultEvent

Alert.show(FaultEvent(info).fault.toString(), faultTitle);

}

}

}

ASP.NET 2.0个性化配置(profile) (三)

Tuesday, October 24th, 2006

配置Profile Provider
默认情况下,profile被保存在sqlserver 2005 express数据库,它位于App_Data目录中,这或许在你开发一些普通的asp.net应用程序时是没有问题的,但很有可能,你需要把你的应用程序的profile保存在另一个数据库中,比如一个完整版的SqlServer 2005的实例中,而该数据库又位于你局域网的某个位置。

Profile使用Provider模式,通过修改web.config或machine.config的设置来告诉系统把信息存储在哪里。
ASP.NET本身配了一个profile provider,叫SqlProfileProvider。如果你感到困惑,你可以通过继承ProfileProvider基类来创建一个自己的 provider。例如,你可以创建一个基于Oracle数据库或MySql数据库的Provider。在这里,我们将只讨论最简单的方法,即通过SqlServer数据库来保存profile信息。

要使用Microsoft SQL Server存储profile信息,必须完成两个步骤。首先,你必须安装SQL Server数据库,然后你必须重新设置配置文件。

ASP.NET 2.0框架提供了一个用于配置SQL Server来存储Profile信息的工具,该工具叫做aspnet_regsql,它位于Windows\\Microsoft.NET\\ Framework\\[.NET版本号]。执行该工具后,你会看到图4中的ASP.NET SQL Server安装向导。

图4 使用ASP.NET SQL Server安装程序

SQL Server安装向导会指导你完成必要的步骤,完成这些步骤后,向导会自动创建用于存储profile信息的存储过程和表结构。

在你完成SQL Server数据库的配置后,你需要修改web.config或machine.config中的数据库连接设置来指向服务器上的SQL Server数据库,本例中该数据库的实例名为MyServer,列表12列出了该配置文件。

ASP.NET 2.0个性化配置(profile) (二)

Tuesday, October 24th, 2006

ASP.NET 2.0个性化配置(profile) (一)

Tuesday, October 24th, 2006

这里是引用别人的文章:

ASP.NET 2.0个性化配置(profile)

为每个用户存储配置信息
强类型 长期保存
支持匿名用户
定义配置(profile)

<?xml
version=”1.0″
?>

<configuration
xmlns=”http://schemas.microsoft.com/.NetConfiguration/v2.0″>

<appSettings/>

<connectionStrings>

<add
name=”Northwind”
connectionString
=”Server=localhost;Integrated
Security=True;Database=Northwind”

providerName
=”System.Data.SqlClient”/>

</connectionStrings>

<system.web>

<anonymousIdentification
enabled=”true”
/>

<profile>

//定义配置(profile)

<properties>

<add
name=”Theme”
allowAnonymous
=”true”
/>

<add
name=”LastVisit”
type
=”System.DateTime”
allowAnonymous
=”true”
/>

</properties>

</profile>
<!–

<webParts>
//定义配置(webParts)

<personalization
defaultProvider=”AspNetSqlPersonalizationProvider”/>

</webParts>
–>

<!–

Set
compilation
debug=”true”
to
insert
debugging
symbols
into
the
compiled
page.

Because
this
affects
performance,
set
this
value
to
true
only
during
development.

–>

<compilation
debug=”true”>

<expressionBuilders>

<add
expressionPrefix=”Version”
type
=”VersionExpressionBuilder”/>

</expressionBuilders>

</compilation>

<!–

The
<authentication>
section
enables
configuration
of
the
security
authentication

mode
used
by
ASP.NET
to
identify
an
incoming
user.

–>

<authentication
mode=”Windows”/>

<!–

The
<customErrors>
section
enables
configuration
of
what
to
do
if/when
an
unhandled

error
occurs
during
the
execution
of
a
request.

Specifically,
it
enables
developers

to
configure
html
error
pages
to
be
displayed
in
place
of
a
error
stack
trace.

–>

<customErrors
mode=”RemoteOnly”
defaultRedirect
=”GenericErrorPage.htm”>

<!–

<error
statusCode=”403″
redirect=”NoAccess.htm”/>

<error
statusCode=”404″
redirect=”FileNotFound.htm”/>

–>

</customErrors>

</system.web>
</configuration>

使用配置(profile)
//increment the current user’s post cout
profile.posts = profile.posts+1;
// update the current user’s last post date
profile.lastpost = datetime.now;

个性化数据将存入数据库

介绍
Microsoft ASP.NET 2.0支持被称为Profile的新对象,它可以自动在多个Web应用程序的访问之间存储用户信息。一个User Profile中可以存储各种类型的信息,这些信息既可以是简单的string和integer类型,也可以是复杂的自定义类型。例如,你可以存储用户的姓、购物篮、用户属性或网站使用情况统计。
本文中,你将学习如何在一个应用中定义user profile。我们也会向你演示如何配置使用不同provider的profile。最后,你将学习如何管理和生成user profile的报告。

User Profiles总揽
Profile 对象与Session对象十分相似,但是更好用一些。与Session相似的地方在于,Profile是相对于一个特定的用户的,也就是说,每个Web应用程序的用户都有他们自己的profile对象。与Session不同的是,Profile对象是持久对象。如果你向Session中添加一个项,在你离开网站时,该项就会消失。而Profile则完全不同,当你修改Profile的状态时,修改在多个访问之间均有效。

profile使用provider模式来存储信息,默认情况下,user profile的内容会保存在SQL Server Express数据库中,该数据库位于网站的App_Data目录。然而,在本文的后半部分,你将了解如何使用其他数据提供者(data provider)来存储信息,如完整版的SQL Server中的一个数据库或者一个Oracle数据库。

与Session不同,Profile是强类型的,Session对象仅仅是一个项集合而已,而profile对象则有强类型属性。
使用强类型是有它的道理的。例如,使用强类型,你就可以在Microsoft Visual Web Developer中使用智能感知技术,当你键入Profile和一个点的时候,智能感知会弹出你已经定义过的profile属性列表。

定义user profile
你既可以在machine.config中,也可以在web.config中定义一个user profile,由于你不能在应用程序的二级目录中创建一个包含文件profile节的web.config文件,这意味着你将无法在一个应用程序中定义两个以上的profile。
在列表1的web.config中,列举了一个简单的profile定义的实例,该profile有三个属性,FirstName, LastName和PageVisits。

配置 IIS 使其支持mxml

Tuesday, October 24th, 2006

这是引用的别人的一篇文章:

需Flex Server, 用Jrun + IIS 即可使用Flex,并解释MXML文件

最近MM推出了
Flex
Bluider,
FB
的出现意味着
Flex
将越来越多人使用!

这几天,一直在研究Flex。
上网也找了写资料,网上也有一些教程,如何安装Flex等等。

现在网上主要有两种方法配置
Flex:①Flex
+
ColdFunsion
+
Jrun
+
IIS

Flex
(默认带Jrun
Lite版
)
+
Tomcat
。前者是比较多人使用的,而后者是HK的luar
的方法。
这两种方法,我都成功可以配置
Flex。
但是配置比较复杂,而是使用不方便。(对MS爱好者来说吧,不太习惯!)

经过,两天和伙伴一起的努力。我们自己研究了一套方法,非常简单,而是很实用!我们使用的方法是:
Jrun
+
IIS
+提取
Flex
Server的三个文件,即可很方便的使用
Flex了,而且可以直接使用
IIS
来解释
Flex

MXML
文件等。
在这里要感谢
思软科技(Sicsoft.com)
的同事的支持.
哈哈..

1.
安装
Java
SDK,
到Sun.com

j2sdk-1_4_2_05-windows-i586-p.exe
这个吧!注意不要改变它的默认安装路径!

2.
安装
Jrun4
,到MM官方网站下载就可以了。也可以用绿色免安装版(建议使用,要的朋友可以找我)

3.
Flex
Server的安装文件中找出
flex.war、profiler.war、samples.war
这三个文件,把这三个文件用rar或者zip
解压到
Jrun
里面
Jrun4\\servers\\default
这个文件夹里面。

4.
先把Jrun.exe
运行起来,把default
启动。接着再运行
JRun4/bin/wsconfig.exe
,
打开之后,把JRun
和IIS
结合,会出现一个很简单的界面,安装提示做就可以了。可以选择默认站点,也可以选择全部站点。注意在高级选项中要把
*.mxml
*.swf
*.swd
*.as
*.swc
这几个文件加入到映射中。默认只有
jsp
的映射。映射成功后,可以在
Jrun里面找到
Jrun_III6.dll
这个文件。那些文件都是靠这个DLL
来影射的。但是不能单独提取出来使用哦.~!

5.
在IIS
里面与
Jrun
结合了的站点,新建一个虚拟目录,指向到刚刚第3步中,解压出来的
samples
文件夹。
就这样,大家可以测试
Felx
是否安装成功了。
看MXML
是否解释了,就可以啦~!

还需要说明的是,如果要使用Flex
的正式版,flex.war、profiler.war、samples.war
这三个文件要注册哦。如果使用了我提供
Jrun4
的朋友就不用了,里面已经注册过了。