うさ☆うさ日記 このページをアンテナに追加 RSSフィード

2006 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2012 | 01 | 02 | 05 | 06 |
2013 | 05 | 08 | 09 | 10 | 11 | 12 |
2014 | 08 |
2015 | 04 | 06 | 08 | 09 | 11 | 12 |
2016 | 01 | 02 | 04 | 05 | 09 | 11 | 12 |
2017 | 04 | 05 | 06 | 10 | 11 |
2018 | 03 | 04 |

2009-09-12

[]そらのむこう から 呼びかける声 どうか気づいて その顔上げて〜♪ (Azure対応メモ)

っということで、既存のASP.NET(ASP.NET MVC) + SQL Serverアプリケーションを、Windows Azure + SQL Azureで動作させるためのメモ(・∀・)

Webアプリケーションプロジェクト

既存のソリューションとは別に、Cloud Service用のソリューション/プロジェクトを作って、そこに既存のWebアプリケーションプロジェクトを追加する形で。

なお、Azure用のソリューションへWebアプリケーションを追加する前に、csprojをテキストとして開いて<RoleType>Web</RoleType>の記述を追加しておく。

<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <RoleType>Web</RoleType>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
...

ソリューションへプロジェクトを追加したら、Webアプリケーションの参照設定でMicrosoft.ServiceHosting.ServiceRuntime.dllを追加。


次に、ソリューションエクスプローラのWeb Roleプロジェクトから、Rolesを選択してコンテキストメニューの[Add]-[Web Role Project in solution...]を選択して、ソリューションに追加したWebアプリケーションプロジェクトを選択して追加。


これで既存のASP.NETアプリケーションAzureで動かす設定はOKです(・∀・)

SQL Server

SQL Azure Migration Wizardを使って、ローカルのSQL Serverに構築したデータベースからSQL Azure用のDDLを作成する形で。


ちなみに、テストデータの作成のため、ローカルからデータの挿入をやってみたんだけど、死ぬほど遅いですね(゚Д゚;)

ローカルなら10分くらいで終わるものが、何時間かかるのか…。

Azure上にホストしたWebアプリからの操作は別に遅くないので、ネットワーク的な要因が大きいんですかね(・ω・)?


なお、コードについてはLINQ to SQLを使ったデータアクセスそのままで、ConnectionStringを変えただけで問題無く動作(`・ω・´)

まあ、SQL Azureはフルテキストインデックスに対応していないので、そこの処理は書き直す必要があるんだけど(´д`)

メール送信

メール送信時のSMTPサーバについては、とりあえずGMailアカウントを使用して動作確認する形で。

なお、SmtpClientでGMailからメールを送信する時はこんなんで。

SmtpClient client = new SmtpClient();
client.Host = "smtp.gmail.com";
client.Port = 587;
client.Credentials = new NetworkCredential( "machi.pon@gmail.com", "xxxxx" );
client.EnableSsl = true;

あと、enableNativeCodeExecutionをtrueにしておかないと怒られる(・ω・)?

<?xml version="1.0" encoding="utf-8"?>
<ServiceDefinition name="MailTest" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition">
  <WebRole name="WebRole1" enableNativeCodeExecution="true">
...

っというわけで、ASP.NET + SQL Serverアプリケーションを、ほぼ修正無しで、Windows Azure + SQL Azureへ持って行けたのでした(`・ω・´)

りくりく 2009/09/18 22:31 はじめまして。今私もSQLAzure触ってるんですが、
insertやupdateのタイミングで日本語が文字化けして困ってます(´・ω・`)

machi_ponさんは問題なかったですか?

machi_ponmachi_pon 2009/09/19 00:50 アレ?、っと思い、確認してみました。
とりあえず、SQL Server Management Studio上からの操作だと文字化けしますね(´・ω・`)
.NETアプリ上からのデータ操作だと、ローカルからの操作でもWindows Azure上からの操作でも化けないようですが。
自分は、テストデータなんかもアプリで作っていたので気がつきませんでした(´д`;)

りくりく 2009/09/19 09:18 わざわざ確認していただいたきありがとうございます(´▽`)
SSMSもそうなんですが、LINQ to SQLからのinsertでも化けてしまいまして。。
ADO.NETで直接SQL書いてパラメーターで値渡してやると問題なかったのですが。

ときに、machi_ponさんの動かしたアプリで使うDBの文字列の型はvarcharでしょうか、nvarcharでしょうか。

machi_ponmachi_pon 2009/09/19 09:39 nvarcharです。
varcharだと、SQL Azureではなく、海外のレンタルサーバや英語版SQL Serverなんかでも、コードページの関係で文字化けが発生した気がします。

ducaemonducaemon 2009/09/20 16:00 やはりnvarcharですか。そこも同じですね。。
もう少し色々試してみます。
丁寧にレスしていただきありがとうございます。

NN 2009/10/27 12:27 INSERT INTO [dbo].[M_Course]([Name],[CreatedOn],[UpdatedOn]) VALUES(N'猪コース', GETDATE(), GETDATE())

machi_ponmachi_pon 2009/11/05 20:12 ( ゜д゜)あっ!、それだ。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/machi_pon/20090912/1252751674