2010-09-23 37 views
3

我正在嘗試使用GoogleSpell的TinyMCE拼寫檢查插件。事情是我想在MVC環境中安裝它。如何讓TinyMVC .NET類庫在ASP.NET MVC 2上運行?

我開始在我的項目中引用.NET類庫DLL(MoxieCode.TinyMCE)。

然後,我將此代碼添加到我的web.config:

<system.webServer> 
    <handlers> 
     <add name="TinyMCE" verb="GET,HEAD,POST" path="TinyMCE.ashx" type="Moxiecode.TinyMCE.Web.HttpHandler,Moxiecode.TinyMCE" /> 
    </handlers> 
    <!--previously existing rules--> 
    <validation validateIntegratedModeConfiguration="false"/> 
    <modules runAllManagedModulesForAllRequests="true"/> 
</system.webServer> 

我加入這行我tinyMCE.init({});電話:

 plugins: "spellchecker", 
     theme_advanced_buttons3: "spellchecker", 
     spellchecker_languages : "English=en", 
     spellchecker_rpc_url : "TinyMCE.ashx?module=SpellChecker", 

這些步驟教程here進行了概述。然後我也跟着從this stack overflow post其建議如下修改Global.asax中,使其MVC指令友好:

 routes.IgnoreRoute("TinyMCE.ashx"); 
     routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

一切都顯得精細接受的是,當我瀏覽到/TinyMCE.ashx我得到這個錯誤:

Description: HTTP 404. The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, or is temporarily unavailable. Please review the following URL and make sure that it is spelled correctly.

Requested URL: /TinyMCE.ashx

爲什麼asp.net mvc無法處理那個url?

+0

困惑...處理程序的路徑匹配你想要的和忽略路徑確保asp.net MVC不會嘗試自己處理它......除非那些忽略不在你的路線的頂部,我不明白爲什麼你會這麼做......我還假設你在添加規則後建立了。 – eglasius 2010-09-23 20:51:49

+0

@eglasius - 確實...路由規則位於規則列表的最頂端,而且我在所有更改後都構建完成。我不知道這個問題可能是我在本地主機上運行。我不明白這會如何改變任何事情。 – quakkels 2010-09-23 20:54:33

+1

我不認爲這是路由問題..它正確地忽略了這條路徑。我懷疑web.config不正確。我只是不知道從哪裏開始。 – quakkels 2010-09-23 20:59:53

回答

0

經過一段時間的挫折之後,我停止在VS 2010的localhost上搞亂它。我懷疑這是一個與IIS配置有關的問題,所以我將該站點上載到活動服務器的子域。它沒有任何問題。

我不確定爲什麼代碼在本地主機上不起作用,但顯然,我執行TinyMCE .NET和GoogleSpell後執行的步驟是正確的,因爲它們在活動服務器上工作。

1

確保該處理程序正在應用於web.config中的正確元素。

IIS支持2種模式,一種集成模式和一種經典模式。

經典模式是以前的IIS 7的工作方式。根據不同,您將處理程序放在適用於asp.net的web.config部分,或者直接由IIS選取的部分中。