[Server]
1.使用Visual Studio內建專案建立
檔案->新增專案->選Vusual C#->Web->.NET Framework 3.5->ASP.NET Web Servic應用程式 。
2.因為只是簡單使用,就使用VS預設的webmethod,HelloWord!存檔關閉。
[WebMethod]
public string HelloWorld()
{
return "Hello World";
}
3.建立ISS,以WIN7來說只要啟動就好,不用另外安裝
控制台->程式和功能->開啟或關閉Windows功能
選擇安裝以下的內容,主要都在Internet Onformation Services,也許可以再少裝一些東西,不過我沒測試了。
4.然後這時候應該可以使用IIS了,可以先試試127.0.0.1是否會出現
控制台->系統管理工具->Internet Information Services (IIS) 管理員
選擇連線底下的Default Web Site->點兩下,進入ASP
設定"啟用上層路徑"為true,然後選擇下面的"內容檢視"tag
進來後點選右邊的"動作"中的"進階設定"
將實體路徑改為你想要的路徑
完成後,把之前建好的HelloWord 的 Web service內容塞進你的實體路徑資料夾中。
沒事可以在IIS按個重新整理也許能解決一些問題。
連連看自己的web servic
127.0.0.1/webservic的名稱,看你檔名是甚麼就打甚麼,我的名稱是Service1.asmx
所以是 http://127.0.0.1/Service1.asmx
出現,大功告成.....Server端
[clinet]
1.加入Web Service Reference
先建立一個C# 空白console專案,然後在專案上點右鍵,選擇"加入服務參考"
選進階->加入 Web 參考
進來後先將你自己的Web Service網址貼到URL上,然後按旁邊的綠色小箭頭看看是否能抓到,確定OK後入下面的畫面,可以修改web 參考名稱,請注意這裡的服務名稱"Service1",好了就按"加入參考"。
2.
再來開啟Program.cs程式碼如下,重點是標記起來的那兩行,第一個(紅色)在專案名稱後方的webservice,是我的web Reference的參照名稱,下面橘色那邊是這個web service的名稱,就是網頁上看到的名稱,這樣就可以使用了,回傳資料接收後顯示。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ConsoleApplication2.webservice;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
Service1 myweb = new Service1();
string A=myweb.HelloWorld();
Console.WriteLine(A);
Console.Read();
}
}
}
菸酒生的世界
內容為菸酒生不務正業發現的小東西
2015年1月3日 星期六
2014年12月11日 星期四
[Android] permission denied
在AndroidManifest.xml中加入紅色那行,加入寫入權限,就算只有讀取也要加入。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.test11"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="18" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.test11.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
</manifest>
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.test11"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="18" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.test11.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
</manifest>
2014年2月12日 星期三
[Matlab] Listbox 消失 single-selection listbox control requires that Value be an integer within String range
發生問題:
刪除listbox的最後一行後,listbox會消失,並在Command Windows 上顯示" Warning: single-selection listbox control requires that Value be an integer
within String range
Control will not be rendered until all of its parameter values are valid "
within String range
Control will not be rendered until all of its parameter values are valid "
如下圖所示
原因:
Listbox 中兩個重要的屬性 String 與 Value ,在刪減資料後,我們會重新set資料到listbox中的string,不過通常都忘記value也跟著設定,預設是不會改的,但刪除的是最後一行資料列時,指標還是指向最後一行,但資料早已不在,所以就無法顯示資料,
舉例來說
以下是我的listbox的資料與index
string={1,2,3,4,5}
value=5;
1
2
3
4
5<---
但我刪除第五筆資料時
1
2
3
4
<-----????
刪除後指標還是標記第五個,但是資料消失了,所以會出錯。
解決方法:
if val==1
set(h_lst2,'Strin',str,'value',1);
else
set(h_lst2,'Strin',str,'value',val-1);
end
在刪除資料後set時,把val設定成val-1,用例子表示的話,就是從原本的5只到4,這樣還是在目前listbox中的最後一個值,所以可以正常顯示。
正常啦,網路上寫得太複雜,有的說就選擇此新矩陣大小的長度,非常複雜~
訂閱:
文章 (Atom)