eaglet的分詞組是應用於winform上的.所以用到web應用程序得改造下路徑
在寫類庫項目時,經常會有某些特殊業務需要用到服務器端的物理路徑,使用傳統的System.IO.Directory.GetCurrentDirectory()方法返回的則是WINNT/System32目錄,這個一般不能滿足正常的業務需求,而要得到具體運行DLL所在的物理目錄可以通過Assembly.GetExecutingAssembly().CodeBase屬性來取得
打開 KTDictSegAnalyzer 項目
找到m_SimpleDictSeg.LoadConfig("KTDictSeg.xml");改成
m_SimpleDictSeg.LoadConfig(GetAssemblyPath() + "KTDictSeg.xml");
在後面加上GetAssemblyPath的定義
內容如下:
private string GetAssemblyPath()
{
string _CodeBase = System.Reflection.Assembly.GetExecutingAssembly().CodeBase;
_CodeBase = _CodeBase.Substring(8, _CodeBase.Length - 8); // 8是 file:// 的長度
string[] arrSection = _CodeBase.Split(new char[] { '/' });
string _FolderPath = "";
for (int i = 0; i < arrSection.Length - 1; i++)
{
_FolderPath += arrSection[i] + "/";
}
return _FolderPath;
}
把xml文件放到bin目錄下
在xml中自定義詞典路徑
1. 確定 GetAssemblyPath() + "KTDictSeg.xml" 這個文件路徑確實是KTDictSeg.xml所在的文件路徑。
2. 確認在這個路徑下的文件對於對於IIS_WPG這個羣組具有讀權限
3.如果還是不行,請找一下幾個可能的目錄下有沒有 KTDictSeg.log這個文件