카테고리 없음

[asp.net-mvc] Crystal Reports 이미지 및 ASP.Net MVC

행복을전해요 2021. 1. 10. 00:47

이 문제 편집

Web.Config

파일을 해결 합니다다음 행을 삽입하십시오.

<system.web>
...
<httpHandlers>
  <add path="CrystalImageHandler.aspx" verb="GET" type="CrystalDecisions.Web.CrystalImageHandler, CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"></add>
  </httpHandlers>
  ...
  

* 번호 버전 작성시주의하세요 (버전 = xx.x.xxxx.x)-------------------
그것을 알아 냈습니다. 라우팅이 생성되는 CrystalImageHandler.aspx 링크를 방해했습니다. Global.aspx에는 리소스 파일을 무시하도록 라우팅 엔진에 알리는 다음 줄이 있습니다.

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

그러나 이것은 일반적인 리소스 파일이 아니며 어떤 이유로 aspx 파일입니다 (누구나 그 이유를 알고 있습니까?)이것을 추가하면 다음과 같이 수정되었습니다.

  routes.IgnoreRoute("{resource}.aspx/{*pathInfo}");

-------------------

public class CrystalImageHandlerController : Controller
{
    //
        // GET: /Reports/CrystalImageHandler.aspx
        
            public ActionResult Index()
                {
                        return Content("");
                            }
                            
                                protected override void OnActionExecuted(ActionExecutedContext filterContext)
                                    {
                                    
                                            var handler = new CrystalDecisions.Web.CrystalImageHandler();
                                                    var app = (HttpApplication)filterContext.RequestContext.HttpContext.GetService(typeof(HttpApplication));
                                                            if (app == null) return;
                                                            
                                                                    handler.ProcessRequest(app.Context);
                                                                    
                                                                        }
                                                                        }
                                                                        

이 컨트롤러는 핸들러를 호출합니다. 여기에 경로를 CrystalImageHandler.aspx로 추가하기 만하면 원하는 하위 경로 (이 경우 / reports)와 함께 사용할 수도 있습니다. 구성을 통해 처리기가 수행 할 수없는 작업입니다.-------------------

로컬 컴퓨터에서 보려면 웹 구성에 다음 코드를 추가합니다.

<httpHandlers>
<add verb="GET" path="CrystalImageHandler.aspx"    type="CrystalDecisions.Web.CrystalImageHandler, CrystalDecisions.Web,Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" /> 
</httpHandlers>

...............................

<appSettings>       
<add key="CrystalImageCleaner-AutoStart" value="true" />
<add key="CrystalImageCleaner-Sleep" value="60000" />
<add key="CrystalImageCleaner-Age" value="120000" />    
</appSettings>

다음 코드는 서버에 표시하기위한 것입니다.

<system.webServer>      
<handlers>                
    <add name="CrystalImageHandler.aspx_GET" verb="GET" path="CrystalImageHandler.aspx" type="CrystalDecisions.Web.CrystalImageHandler, CrystalDecisions.Web, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" preCondition="integratedMode"/> 
    </handlers>
    </system.webServer>
    

:) 웹 구성에 추가 할 때 그 문제를 해결할 것입니다.-------------------
라우팅이 CrystalImageHandler.aspx를 방해했기 때문입니다. 따라서 Global.asax 또는 routeConfig 파일에서 .aspx 확장 파일의 경로를 무시할 수 있습니다. 다음 줄을 추가하여 .aspx 확장 경로를 무시할 수 있습니다.route.IgnoreRoute ( "{

allaspx}", new {allaspx = @ ".

.aspx (/.*)?"});

출처
https://stackoverflow.com/questions/2006011